如何摆脱导航控制器和之前的控制器?

时间:2016-10-26 09:27:15

标签: swift xcode uinavigationcontroller

假设我有一个故事板,例如logInVC-> navViewController-> RootVC-> restOfStack

如果在rootVC中我想要logOut,从而在没有logInVC成为我的堆栈的一部分的情况下切换到logInVC,那么我该怎么做呢。我基本上需要完全摆脱导航控制器及其堆栈,返回到navVC之前的应用程序启动页面。

很惊讶在Swift中找到这个问题的答案很困难,会认为这是一个非常普遍的问题。

2 个答案:

答案 0 :(得分:0)

通过关闭密钥窗口的根视图控制器,您将关闭所有视图控制器并返回到登录vc,假设它是初始视图控制器。

UIApplication.sharedApplication().keyWindow?.rootViewController?.dismissViewControllerAnimated(true, completion: nil)

答案 1 :(得分:0)

如果没有ViewController,您无法推送NavigationController。但是很少有办法达到你的需要。

  1. Login ViewController设为RootViewController

  2. 如果您不想使用导航控制器,最接近的选择是ModalView控制器。

  3. 呈现控制器:

    self.presentViewController(controller, animated: true, completion: nil)
    

    解雇控制器:

    self.dismissViewControllerAnimated(true, completion: {});