当我的应用程序在 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 秒后进入主界面。大家有什么建议吗?
附言我是新手,如果你也能解释我如何避免这种延迟,无论在 view.didLoad
或任何函数/buttonAction 中触发转换,我将不胜感激。
最佳答案
一种方法是创建一个类,我们将其命名为RootViewController
。在此 Controller 中,您将从服务器加载每个设置,并且在这里您将验证 token 或用户身份验证(即用户是否登录)。
然后 RootViewController
将确定将显示哪个 Controller (主页?身份验证屏幕?)或将替换 App Delegate 中的 UIWindow
。无论您想移动到另一个屏幕做什么,至少您可以在这里获得流程。
你可以让 RootViewController
的屏幕设计与 LaunchScreen
相同,这样用户会觉得他仍在启动屏幕中,而不是在一些奇怪的地方随机画面。
希望这对您有所帮助。
关于ios - 如何在快速更改 ViewController 时消除延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56529358/