我的应用在ViewControllers
之间移动时遇到了一些延迟。我不知道该如何解决?当我检查用户登录到Firebase时,会出现问题。我在下面发布代码:
override func viewDidLoad() {
super.viewDidLoad()
// Check if user is signed in!!
if Auth.auth().currentUser != nil {
// Move to MapController
print("USER: SIGNED IN")
self.moveToMain()
} else {
//User Not logged in
print("USER: NOT SIGNED IN")
}
}
因此,我可以看到在view.didLoad()
之后触发该代码时会出现问题。这是问题的一部分,我想在view.didLoad()
之前执行此操作,或者如果用户已登录,则以某种方式覆盖此功能。
目前,由于用户进入登录页面并在0.5秒后进入主界面,用户界面非常糟糕。有什么建议吗?
P.S。我是新手,如果您也可以解释如何在view.didLoad
或任何function / buttonAction中触发过渡,如何避免这种延迟,将不胜感激。
答案 0 :(得分:0)
一种实现方法是拥有一个类,我们将其命名为RootViewController
。在此控制器中,您将从服务器加载每个设置,并且在此处还将验证令牌或用户的身份验证(即用户是否登录)。
然后RootViewController
将确定将显示哪个控制器(“主页”?“身份验证”屏幕?)或替换“应用程序委托”中的UIWindow
。无论您想移到另一个屏幕做什么,都可以从这里获得流程。
您可以使RootViewController
的屏幕设计与LaunchScreen
相等,以便用户感觉自己仍在启动屏幕中,而不是在一些奇怪的随机屏幕中。
希望这会有所帮助。