Мое приложение воспроизводит видео, и я хочу вызвать действие, когда видео заканчивается.Экран (A) встроен в контроллер навигации, и если я запускаю толчок (к B) и затем возвращаюсь (к A), действие (в A) все еще происходит на основе наблюдателя.На моем экране также есть опция, которая запускает модальный режим (до C), который затем отклоняется для возврата (к A).Однако, когда я возвращаюсь из модального режима (C), наблюдатель (в A) исчезает.
Вот мой код для контроллера представления экрана A:
ScreenAViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do more stuff
NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: self.avPlayer.currentItem, queue: .main) { _ in
// Do stuff
}
}
}
Вот код, которыйвызвать модальный экран C:
@IBAction func triggerModal(_ sender: UIButton) {
avPlayer.pause()
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let screenCViewController = storyboard.instantiateViewController(withIdentifier: "ScreenC") as! ScreenCViewController
present(screenCViewController, animated: true)
}
И, наконец, вот строка, которая закрывает экран C:
dismiss(animated: true, completion: nil)