У меня есть SongNamesViewController со встроенным навигационным контроллером. Когда песня выбирается из списка, я открываю PlaySongViewController и добавляю в navigationController, используя следующую функцию:
func openPlaySongViewController() {
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let playSongViewController = storyBoard.instantiateViewController(withIdentifier: "playSongViewController")
self.navigationController?.pushViewController(playSongViewController, animated: true)
}
Теперь, сообщение приходит через удаленное push-уведомление. Пользователь нажимает на значок push-уведомления, а затем я отображаю песню, используя функцию «openPlaySongViewController ()». Если приходит другое push-уведомление, а затем я отображаю другой PlaySongViewController поверх существующего PlaySongViewController.
Текущий поток: (NavigationController)->SongNamesViewController>PlaySongViewController->PlaySongViewController
Как мне удалить существующий PlaySongViewController, который находится в navigationController, перед добавлением нового экземпляра PlaySongViewController?
Я пробовал следующее, ноPlaySongViewController, который находится в навигационном контроллере, не исчезает.
for viewController in self.navigationController!.viewControllers {
if viewController.isKind(of: PlaySongViewController.self) {
viewController.removeFromParent()
}
}