我的导航控制器数量不断增长

我是iOS开发新手,并不完全确定故事板/ Segges / Pushing和Popping。

所以在我的应用程序,我有一个导航控制器与5视图控制器从一个到另一个。

当它到达最后一个视图控制器我有一个segue到第一个,我有一些prepareForSegue方法中列出的任务。

出于好奇,我决定检查[self.navigationController.viewControllers count]会发生什么。 我发现它不断增长,不断增长,这并不“感觉”正确。

我是否正确处理回到第一个屏幕? prepareForSegue方法是有用的,因为它允许我发送一些数据回到第一个segue。 是否有可能说当你回头清除导航控制器上的所有视图?

谢谢

你可以使用放松的继续。 这是一个很好的教程:

pragmaticstudio.com/blog/2013/2/5/unwind-segues

确保在连线到故事板之前创build展开动作方法,否则在拖动到“退出”时不会显示。 那是我第一次做起来最混乱的部分。 本教程以正确的顺序执行,所以如果你遵循它,你应该没问题。

另外,下面是我放在一起的一个示例,展示了如何将数据传回到放松时段。 它使用模态表示的视图控制器,但技术是相同的:

github.com/soleares/AddToTableView

不,你永远不能倒退(除了放松)。 Segues总是实例化新的控制器,所以你实际上没有回到第一个控制器,你只是创build一个新的实例,它被添加到堆栈。 所以要么退回到一个unwind segue或使用popToViewController:animated :. 使用unwind segue将允许你使用prepareForSegue,并且它确实导致所有的控制器被释放(如果你没有其他强的指针)。