我正在开发一个应用,就 View 的运行方式而言,它不是很“连续”。
例如,我可以进入以下场景,在该场景中我会继续查看新 View :
MatchesNavigationController -> ModalOptionsController -> ProfileViewController -> ModalOptionsController -> MatchesNavigationController -> MatchesNavigationController...
等等等等。
在英语中,发生的事情是用户正在查看他们的匹配对象并在与用户的短信中,然后他们单击工具栏中的模态选项按钮并弹出一些选项,然后用户想查看他们的个人资料。然后从配置文件中,他们可以单击一个按钮来弹出相同的模式,然后可以从那里转到与该人的对话,这将再次返回到他们正在查看对话的导航 Controller 。然后他们可以从那里再次单击选项,转到配置文件,然后重复...
但是如果我在 ProfileViewController
上,我可以按“后退”,这将通过我编写的自定义 RightToLeft segue 继续“回到”MatchesNavigationController
.
所以我可以进入 ViewController 堆栈在这个实例中开始变得越来越大的实例。
当我也这样做时(进入这个循环的工作流),我有一个自定义的 LeftToRight segue,我写了因为我希望它看起来像,对用户来说,他们正在朝那个方向导航。
我该如何清理您可以在此处进入的这种循环类型导航中的先前 View ?
最佳答案
在 prepareForSegue:
中调用 self.navigationController.popViewControllerAnimated(true)
在 segueing 之前,它会在推送下一个 View Controller 之前从堆栈中释放当前 View Controller 。
关于ios - 转到新的 UIViewController 时如何从层次结构中删除 UIViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34792412/