如何从最后一个导航的VC返回到第一个VC

时间:2015-06-10 07:57:03

标签: ios swift

我只使用segue在我的应用中导航。

我只想知道如果我从1st-VC导航到V2再到V3然后导航到4th-VC,如何直接从4th-VC导航回第一个VC而不返回V3,V2然后返回VC1?

感谢。

在我当前的应用程序中,我使用它来导航回以前的VC (使用展开):

@IBAction func unwindToViewController (sender: UIStoryboardSegue){

    }

这是好习惯吗?

3 个答案:

答案 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,那就是要走的路。至于第三个,它比第一个更容易实现,但我认为第一个是最正确的。