在没有NavigationController的情况下展开到特定的ViewController

时间:2017-11-20 04:42:34

标签: ios swift xcode uiviewcontroller

我试图在不使用navigationController的情况下放松到特定的viewController。例如,我有一组用户需要回答的问题。根据他们的答案,他们要么需要解开根控制器或第一个问题。我知道如何将它们导航到根控制器,我只是不知道如何回到任何其他特定的控制器。我的理解是,如果我使用segue来自viewController 4 - > 2它将使用更多的内存,堆栈最终可能会像1-> 2-> 3-> 4-> 2等...

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以使用类似以下方法的内容,根据需要一次弹出多个视图。

+ (void)popBackWithSourceViewController:(UIViewController *)viewController viewsToPop:(int) viewsToPop {            
    [viewController.navigationController popToViewController:viewController.navigationController.viewControllers[viewController.navigationController.viewControllers.count-viewsToPop-1];
}

答案 1 :(得分:0)

在你要放松的每个VC中,你需要创建一个带有一个参数的@IBAction函数(_ segue UIStoryboardSegue),然后在你的故事板中你转到你要放松的vc,并在顶部控件上点击拖动VC图标和exitnicon。您需要选择展开功能,然后左侧的VC树中会出现一个新的segue。点击segue会给你一个选项,就像常规的soryboard segues一样,给它一个ID。一旦命名,您可以以编程方式执行带标识符的segue。您可以根据需要添加任意数量的segue。