TiltedWindmill, я уже сталкивался с этой проблемой. В моем случае, в моей голове, я хотел сделать это:
(> = нажатие контроллера вида)
Начните с MapViewController> Сведения о привлекательности для щелкающего булавки на карте> MapViewController> Затем нажмите на другой DetailsViewController.
В моем MapViewController этот контроллер представления был зарегистрирован для уведомления. Теоретически, я думал, что я перемещался как эта Карта> Контроллер представления деталей> Карта> Контроллер представления деталей. Дело в том, что всякий раз, когда я касался булавки на карте, запускалось уведомление, и обе копии MapViewController, находящиеся в стеке навигации, отвечали на уведомление.
В результате он выдвинул две копии одного и того же DetailsViewController. Итак, настоящая навигация была такой:
Карта> Подробности Просмотр контроллера> Карта> Подробности Просмотр контроллера copy1 + DetailsViewController copy2
*> = Второй контроллер просмотра подробностей был помещен поверх предыдущего, но не виден глазу.
Когда я нажал кнопку «Назад», он щелкнул DetailsViewController copy2 и показал тот же контроллер представления (DetailsViewController copy1).
Я исправил это, сказав моему MapViewController отменить подписку на уведомление о событии viewDidDisappear.
Не уверен, что вы поняли это: P