Как найти, какой viewcontroller использует расширенный класс viewcontroller - PullRequest
0 голосов
/ 16 октября 2018

Я расширил класс UIviewcontroller, чтобы создать общий класс corecontroller для управления FCM во всех viewcontroller (необходимо выполнить некоторую общую функцию при получении FCM).

override func viewDidAppear(_ animated: Bool) {
    //registering gcm reciever
    NotificationCenter.default.addObserver(self,
                                           selector: #selector(showReceivedGCMMessageCore(_:)),
                                           name: NSNotification.Name(rawValue: appDelegate.messageKey), object: nil)
}
override func viewDidDisappear(_ animated: Bool) {
     NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: appDelegate.messageKey), object: nil)
}

Мои расширенные классы Corecontroller viewdidAppear и viewdiddisapper находятся здесь выше, я управлял наблюдателем уведомлений и removeobserver.После этого, где бы мне ни потребовался расширенный класс corecontroller и унаследованный класс corecontroller

// в моем viewcontroller

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
}
override func viewDidDisappear(_ animated: Bool) {
    super.viewDidDisappear(animated)
}   

Но мне не хватает того, что один viewcontroller не удаляет наблюдателя при исчезновении (и из-зак этой единственной функциональности, т. е. воспроизведение звука - это место разговора в фоновом режиме) Просто хочу знать, какой контроллер просмотра получает FCM.(в каком классе viewcontroller получено сообщение FCM)

...