使用 viewDidAppear 的自动登录不利用导航控制器

Posted

技术标签:

【中文标题】使用 viewDidAppear 的自动登录不利用导航控制器【英文标题】:Automatic Login using viewDidAppear does not leverage the Navigation Controller 【发布时间】:2015-08-13 18:50:50 【问题描述】:

我使用 Parse.com 创建了一个登录/注册流程(效果很好)。在我的主屏幕(用户访问登录和注册屏幕)上,我添加了以下代码以在用户每次打开我的应用程序时自动登录:

override func viewDidAppear(animated: Bool) 

    if PFUser.currentUser() != nil 

       self.performSegueWithIdentifier("test", sender: self)

    


“测试”是从主屏幕创建到表格视图控制器的模态序列,在用户登录或注册后呈现给用户。需要明确的是,当主视图控制器检测到用户已登录时,它会绕过登录和注册屏幕并直接进入表视图控制器。

以下是我的故事板流程:

1:主视图控制器->导航控制器1->登录视图控制器->表格视图控制器1

2:主视图控制器 -> 导航控制器 2 -> 注册视图控制器 -> 表视图控制器 1

问题是这样的:

当用户登录或注册(使用各自的屏幕)时,它会将他们带到带有导航栏的表格视图控制器在屏幕顶部(这正是我想要的)。但是,当登录到应用程序并且用户已经登录时,当它自动将用户带到 Table View Controller 时,根本没有标题。由于某种原因,它似乎忽略了它是导航控制器的一部分。

我希望以上内容很清楚,但如果您需要任何澄清,请告诉我。我知道我的故事板设置中存在一些问题......任何帮助将不胜感激。

谢谢!

【问题讨论】:

【参考方案1】:

我个人不喜欢你的 ViewCycle 它应该是

    导航控制器 MainVC MainVC 的登录推送 从 MainVC 注册推送 从登录推送TableList

这应该是您代码的理想解决方案。

然后这段代码就会像 Charm 一样工作

override func viewDidAppear(animated: Bool) 

    if PFUser.currentUser() != nil 

       self.performSegueWithIdentifier("test", sender: self)

    


【讨论】:

这很有帮助。谢谢!

以上是关于使用 viewDidAppear 的自动登录不利用导航控制器的主要内容,如果未能解决你的问题,请参考以下文章

利用cookie 账号密码 如何实现网站自动登录

来自 viewDidAppear 的 Segue 调用有效,但不是来自 viewWillAppear

利用python实现南通大学校园网自动连接(winiphoneipad可以自动连接,安卓,mac需要点击链接)

利用shell的expect实现自动登录服务器

是否可以在不使用继承的情况下在viewDidAppear上调用某些代码

iPhone 抖动问题:加载 viewController 时未调用 viewDidAppear