Хотелось бы узнать, можно ли удалить обозреватель уведомлений для iOS9.0 и новее. Документы Apple говорят, что уведомления будут автоматически удалены после исчезновения представления, что является правдой, но не полностью правдой. мой tarBarController вызывает UIApplication.willResignActiveNotification, даже если представление исчезло.
Если есть присутствуетViewViewController, представленный tarBarController, presentViewController вызывает уведомление, а tarBarController делает то же самое, даже если я удаляю наблюдателя из моего tarBarController*
//TabBarController
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
if #available(iOS 13.0, *) {
NotificationCenter.default.addObserver(self, selector: #selector(applicationWillDisappear(notification:)), name: UIScene.willDeactivateNotification, object: nil)
} else {
NotificationCenter.default.addObserver(self, selector: #selector(applicationWillDisappear(notification:)), name: UIApplication.willResignActiveNotification, object: nil)
}
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(true)
NotificationCenter.default.removeObserver(self) // there is no need to remove this observer in iOS 9 and later , but TarBarController doesn't dealloc
}
//PresentedViewController
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
if #available(iOS 13.0, *) {
NotificationCenter.default.addObserver(self, selector: #selector(applicationWillDisappear(notification:)), name: UIScene.willDeactivateNotification, object: nil)
} else {
NotificationCenter.default.addObserver(self, selector: #selector(applicationWillDisappear(notification:)), name: UIApplication.willResignActiveNotification, object: nil)
}
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(true)
// the presentedViewController removes this observer which is fine
}