У меня есть приложение для управления кабиной, в котором класс corecontroller расширен с UIViewcontroller для использования всех общих функций.Здесь мы добавляем уведомления наблюдателя и удаления
override func viewDidAppear(_ animated: Bool) {
//registering gcm reciever
super.viewDidAppear(animated)
NotificationCenter.default.addObserver(self,
selector: #selector(showReceivedGCMMessageCore(_:)),
name: NSNotification.Name(rawValue: appDelegate.messageKey), object: nil)
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: appDelegate.messageKey), object: nil)
}
В MyViewController
class MyViewController: Corecontroller{
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
}
}
при поступлении FCM будет выполнять функции внутри corecontroller ,в том, что одна из функций заключается в открытии страницы, скажем AcceptReqeustViewcontroller из моего расширенного corecontroller, в этом AcceptReqeustViewcontroller , когда пользователь принимает запрос, необходимо закрыть обратно в viewcontroller, так что я сделал
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let rootController = kStoryBoard.main.instantiateViewController(withIdentifier:kViewControllers.mainPage) as! MainViewController
appDelegate.window?.rootViewController = rootController
self.view.window?.rootViewController?.dismiss(animated: true, completion: nil)
инициализировал новый viewcontroller как rootviewcontroller и закрыл, но в этом случае в MyViewController viewDidAppear()
выполняющихся функциях просто нужно знать, почему это происходит?