У меня есть навигационный ViewController, и я хочу добавить пользовательское представление с именем TestView
на все ViewController, когда пользователь выключает Интернет. Я добавляю пользовательское представление в окно ключей при изменении состояния подключения к Интернету. Представление отображается и остается там, когда я нажимаю ViewController, но когда я представляю ViewController модально, модальный ViewController накладывается на представление.
Я хочу, чтобы представление оставалось впереди, даже когда VC представлен модально иЯ хочу иметь возможность добавить некоторый код в мой файл AppDelegate для всех модальных ViewControllers или что-то в этом роде. Как я могу сделать это в Swift 5? Я думал, что если бы была функция, которая запускалась каждый раз, когда был представлен модальный VC, я мог бы добавить туда свой код. Вот как выглядит мой AppDelegate:
class AppDelegate: UIResponder, UIApplicationDelegate, ReachabilityObserverDelegate {
var reachability: Reachability?
var window: UIWindow?
var internetView: TestView?
//This is called when the internet connects or disconnects
func reachabilityChanged(_ isReachable: Bool) {
window = getKEYWindow()
if !isReachable {
window?.addSubview(internetView!)
}
else {
internetView?.removeFromSuperview()
}
}
func getKEYWindow() -> UIWindow? {
return UIApplication.shared.connectedScenes.filter({$0.activationState == .foregroundActive}).map({$0 as? UIWindowScene}).compactMap({$0}).first?.windows.filter({$0.isKeyWindow}).first
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
try? addReachabilityObserver()
internetView = TestView(frame: CGRect(x:0, y: 50, width: UIScreen.main.bounds.size.width, height: 14))
return true
}
}
Основной ViewController:
Интернет выключен:
Push ViewController:
Текущий ViewController Модально:
Обновление: Я нашел другой способ держать мой взгляд спереди,Я добавил следующую строку internetView.layer.zPosition = .greatestFiniteMagnitude
в didFinishLaunchingWithOptions
, и она работала как шарм. Спасибо всем за помощь.