当用户单击“注销”时,我想将视图控制器关闭到第一个屏幕

时间:2015-08-13 20:23:53

标签: ios swift dismiss

我正在创建一个登录/注册流程,并在点击表视图控制器(最后一个屏幕)上的“注销”后,我希望它返回到蓝屏(这是主应用程序屏幕) 。

enter image description here

我在Table View Controller中使用以下代码:

func signOutTapped (sender:UIButton) {
    PFUser.logOut()
    self.dismissViewControllerAnimated(true, completion: {});
}

Parse成功登出用户,屏幕解除前一个屏幕(即绿屏之一取决于用户来自哪里)。但是,当在表视图控制器上单击“注销”时,我希望将其关闭到蓝屏。

我是否应该将Table View Controller中的segue用于蓝屏?如果是这样,什么类型的segue会通过向下滑动过渡(与模态segue相反)来消除屏幕?

关于如何重新构建故事板的任何建议都会很棒!谢谢!

2 个答案:

答案 0 :(得分:0)

尝试调用此函数:

这将搜索最顶层的IUViewController并关闭所有提供的视图控制器。

func goHome() {
  var parent = self
  while parent.presentingViewController != nil {
    parent = parent.presentingViewController!
  }
  parent.dismissViewControllerAnimated(false, completion:nil)
}

答案 1 :(得分:0)

你能做到的一种方法是: 完成登录或注册后,将视图控制器(绿色)关闭回到开始屏幕(蓝色),然后显示标签栏视图控制器。

这通常是一个很好的模式,因为登录/注册是可选任务,不是应用程序工作流程的固有部分。 例如,当用户已经登录(随后启动应用程序)时,您将直接从蓝屏(启动VC)转到标签栏视图控制器。