【发布时间】:2016-07-05 09:53:46
【问题描述】:
我是iOS-Swift 的新手。我创建了一个简单的应用程序,第一次登录 "performSegueWithIdentifier" 后工作正常,但注销后,如果我再次登录,我将返回根视图控制器,"performSegueWithIdentifier" 给了我fetal error (crash)。我没有从我的登录视图设置任何属性。我不明白它第一次工作正常,第二次出错。
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
self.login()
}
func login() {
if user == nil {
self.presentViewController(logInView, animated: false, completion: nil)
} else {
self.performSegueWithIdentifier("Home", sender: self) // Here I m getting error after logout when i log in again.
}
}
在我的第二个观点中,注销后我写了这个:
self.navigationController?.popToRootViewControllerAnimated(false)
我得到的错误如下:
致命错误:在展开可选值时意外发现 nil
我的故事板层次结构是: 导航控制器 - ViewController(loginview)- TabbarController(HomeView)- 四个选项卡 两个视图控制器和两个 TableViewControllers。 从我正在调用的 TableViewController 之一中
self.navigationController?.popToRootViewControllerAnimated(false)
然后它回到 ViewController(loginview) 但如果我再次尝试登录那个时候 Tabbar 视图控制器不存在。我通过以下代码得到这个:
print("NextView = (storyboard.instantiateViewControllerWithIdentifier("Home"))") // 这里只有我得到胎儿错误。
【问题讨论】:
-
当你注销时,你在设置什么作为rootviewcontroller
-
您应该在登录后更改rootviewcontroller。
-
您需要显示导致崩溃的代码和错误日志。没有这些,我们真的无能为力。
-
@mitul 你能告诉我如何更改根视图控制器。谢谢大家回复
-
代码应该出现在您的问题中。不在评论中。显示的错误信息是什么?