![](/img/trans.png)
[英]Swift / popViewControllerAnimated throws nil / how to go back to previous viewController?
[英]How to go back to home page or previous viewcontroller after login in swift 3
我正在开发一个应用程序,其中导航控制器连接到了标签栏控制器,另一些ViewController附加到了标签栏控制器,如图所示:
现在,我想仅在用户单击第二个选项卡而不登录时才向用户显示登录页面。因此,在第二个选项卡控制器中,我具有以下内容:
if let token = cookies["token"] {
//do something
} else {
let vc = self.storyboard?.instantiateViewController(withIdentifier: "loginView")
self.tabBarController?.setViewControllers([vc!], animated: true)
}
在成功登录后,我想在LoginViewController中返回上一页。我对该主题进行了一些研究。 这是我尝试过的。 我尝试了这个:
let vc = self.storyboard?.instantiateViewController(withIdentifier: "minePage") as! MineViewController
self.tabBarController?.setViewControllers([vc], animated: true)
它打开了页面,但仅显示了标签栏,不再显示导航栏。 我也试过这个:
self.navigationController?.pushViewController(vc, animated: true)
它还将用户带回到“ minePage”,但仅显示导航栏,而不显示标签栏。 我还尝试在情节提要中添加轻松的序列,并在first view controller中添加一个功能:
@IBAction func prepareForUnwindWithSegue(segue: UIStoryboardSegue){
}
并尝试了这个:
self.dismiss(animated: true, completion: nil)
登录后什么也没发生。我的问题是
谢谢。
您好,您不能仅将“完整”的登录视图控制器放在登录页面之后。 因此,将登录视图控制器(而非登录按钮)的序号放到右侧的新视图控制器(上图中未显示的新视图控制器)中,然后如果登录尝试有效,则有条件调用它吗?
这样,您可以清楚地区分登录之前和登录之后看到的内容?
然后,您只需在该选项卡中的第一个viewController中添加逻辑,以检查用户是否已登录,如果已登录,则通过类似的步骤(从第一个VC到新的VC),一直绕到新的登录视图控制器。一个有条件被解雇的人)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.