我使用 Parse.com 创建了登录/注册流程(效果很好)。在我的主屏幕(用户访问登录和注册屏幕)上,我添加了以下代码以在用户每次打开我的应用程序时自动登录:
override func viewDidAppear(animated: Bool) {
if PFUser.currentUser() != nil {
self.performSegueWithIdentifier("test", sender: self)
}
}
“test”是从主屏幕创建到 TableView Controller 的模式序列,该 Controller 在用户登录或注册后呈现给用户。需要明确的是,当主视图 Controller 检测到用户已登录时,它会绕过登录和注册屏幕,直接进入 TableView Controller 。
以下是我的 Storyboard流程:
1:主视图 Controller -> 导航 Controller 1 -> 登录 View Controller -> TableView Controller 1
2:主视图 Controller -> 导航 Controller 2 -> 注册 View Controller -> TableView Controller 1
问题是这样的:
当用户登录或注册(使用相应的屏幕)时,会将他们带到 TableView Controller ,导航栏位于屏幕顶部(这正是我想要的)。但是,当登录应用程序并且用户已经登录时,当它自动将用户带到 TableView Controller 时,根本没有标题。由于某种原因,它似乎忽略了它是导航 Controller 的一部分。
我希望以上内容很清楚,但如果您需要任何说明,请告诉我。我知道我的 Storyboard设置存在一些问题...任何帮助将不胜感激。
谢谢!
最佳答案
我个人不喜欢你的ViewCycle,它应该是
- 导航 Controller
- 主VC
- 来自 MainVC 的登录推送
- 注册来自 MainVC 的推送
- 从登录推送表列表
这应该是您的代码的理想解决方案。
然后这段代码就会像 Charm 一样工作
override func viewDidAppear(animated: Bool) {
if PFUser.currentUser() != nil {
self.performSegueWithIdentifier("test", sender: self)
}
}
关于ios - 使用 viewDidAppear 自动登录不利用导航 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31996217/