我知道我做错了。
当我的应用程序打开时,我需要判断用户是登录还是注销(并根据此打开不同的 View Controller )。
我的解决方案如下图所示。
我知道这是错误的(它只是一个函数的空 View Controller )但我不知道我还能把这个逻辑放在哪里。
除此之外,我还需要知道用户是付费客户还是免费客户(每个都有不同的主页)。 如果不为此目的构建一个全新的 View Controller ,我该如何检查呢?
编辑
一条评论要求我粘贴我的代码,所以这里是: ` 导入 UIKit 导入 Firebase
类 CheckIfLoggedInViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
Auth.auth().addStateDidChangeListener { auth, user in
if user != nil {
// User is signed in. Show home screen
self.performSegue(withIdentifier: "goToLoggedIn", sender: self)
} else {
// No User is signed in. Show user the login screen
self.performSegue(withIdentifier: "goToLoggedOut", sender: self)
}
}
}
`
最佳答案
您可以像启动屏幕一样设计这个白屏。这是这个问题的一般解决方案。当你完成所有的事情(调用 api,验证......等等)然后将用户导航到所需的屏幕。
如果您的任务很长,那么您可以在此处添加一些动画,就像优步一样。如果您不想要任何动画,请确保有事件加载器,否则用户会认为设备因您的应用而挂起。
How do I check this too without building an entire new View Controller just for that purpose?
当您的应用加载到内存中时,将调用 didFinishLaunchingWithOptions
。如果您只需要将用户导航到有条件的登录或注销屏幕,那么您可以在此处添加代码。
但是在这个delegate中,不推荐调用API。
关于ios - 在哪里放置用户登录与用户注销逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55176435/