У меня есть NavigationController
, что следующие VC встроены в: VC1 -> VC2 -> VC3 -> VC4 -> VC5. Моя проблема заключается в том, что когда я перехожу из VC5 (после завершения редактирования), я отправляю вас обратно в VC3, но я хочу программно выбросить VC4 и VC5 из стека, то есть когда пользователь отправляется обратно в VC3, я хочу «вернуться "в navagitionBar
, чтобы отвезти вас в VC2 (а не VC5, откуда вы действительно пришли).Программно определяя порядок/стек нового контроллера навигации?
Это очень много в IOS, где вы хотите отредактировать модель, а затем отправить их обратно в представление tableView/Collection, но, поскольку редактирование выполнено, вы не хотите, чтобы редактирование viewControllers в стеке навигации больше так как он слишком запутывает UX.
На скриншоте ниже, ВК в правом верхнем углу является VC5: который segued обратно в PinViewController (VC3) через self.performSegueWithIdentifier("backToPins", sender: self)
Как я могу это сделать?
Вы просто использовать разматывания SEGUE. Определите метод разматывания в VC3, и магия управляется для вас – Paulw11
Спасибо @ Paulw11 unindForSegue приведет меня к VC3, но мне нужно, чтобы VC3 обновлялся с новыми данными модели, которые были добавлены в VC5, поэтому я не уверен отключение к предыдущему экземпляру VC3 лучше всего здесь, мне кажется, мне нужен новый экземпляр с обновленными данными модели? – GarySabo
Вы можете передавать данные обратно через разматывание; метод 'unwind' получает' UIstoryboardSegue', который имеет 'sourceViewController', который вы можете использовать так же, как' destinationViewController' в 'prepareFoeSegue' – Paulw11