我只使用segue在我的应用中导航。
我只想知道如果我从1st-VC导航到V2再到V3然后导航到4th-VC,如何直接从4th-VC导航回第一个VC而不返回V3,V2然后返回VC1?
感谢。
在我当前的应用程序中,我使用它来导航回以前的VC (使用展开):
@IBAction func unwindToViewController (sender: UIStoryboardSegue){
}
这是好习惯吗?
答案 0 :(得分:0)
您可以使用以下代码 -
func popToRoot() {
self.navigationController?.popToRootViewControllerAnimated(true)
}
答案 1 :(得分:0)
您可以在4th-VC中创建IBAction
并调用popToRootViewControllerAnimated
方法。
答案 2 :(得分:0)
我知道三个选项:
第一个(可能是最好的)是使用展开segue。详细解释了here (SO question)
第二个,如果您的VC1是根视图控制器,则只需在VC4中使用此行:
where
最后一个是手动将ViewControllers堆栈设置为您想要的状态(注意,您将以某种方式获取对VC的引用)。例如,"返回三个VC" (对不起,自动完成突然在Xcode for Swift中崩溃,所以只有Objective-C):
self.navigationController?.popToRootViewControllerAnimated(true);
第一种解决方案是最好的,因为它是最灵活的。并且它不会让您对VC堆栈进行硬编码。但这实际上取决于您的要求。第二个是迄今为止最容易实现的,所以如果你需要回到根VC,那就是要走的路。至于第三个,它比第一个更容易实现,但我认为第一个是最正确的。