【发布时间】:2023-04-09 18:55:01
【问题描述】:
我有一个 Swift 应用程序,我想做的是每次应用程序激活时,我想检查会话中的用户。如果找不到,我想展示我在 Storyboard 中设计的登录视图控制器。如果找到了,我需要一切照常恢复。
我有另一个主视图控制器,它被设置为我的初始视图控制器。如果找不到用户,我不希望主视图控制器显示。
我这样做是为了处理状态恢复,同时也在会话中寻找用户:
func application(application: UIApplication, shouldRestoreApplicationState coder: NSCoder) -> Bool {
return <userInSession> != nil
}
我创建了一个从主视图控制器到登录视图控制器的 segue。在主视图控制器的 viewDidAppear 方法中,我检查以确保用户已登录。如果他们未登录,我会执行登录视图控制器的 segue。
一旦用户登录你,我就会关闭登录视图控制器。
问题在于,因为我使用 viewDidAppear,所以在登录视图控制器出现之前会看到主视图控制器片刻,以防用户未登录。我想避免这种情况。我尝试使用 viewWillAppear 方法,但这会产生以下错误:
2014-12-14 23:42:52.910 appname[78187:18685210] 警告:尝试在 <0x7fdcc1746610>
标签: ios swift ios8 viewwillappear viewdidappear