ios - 在哪里放置用户登录与用户注销逻辑?

标签 ios swift iphone xcode

我知道我做错了。

当我的应用程序打开时,我需要判断用户是登录还是注销(并根据此打开不同的 View Controller )。

我的解决方案如下图所示。

enter image description here

我知道这是错误的(它只是一个函数的空 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/

相关文章:

iphone - 如何使用 NSFetchedRequest 或 NSPredicate 从实体中选择所有行?

iphone - 在硬件测试中未找到Xib

ios - 如果 IBOutlet 在 UIViewController 类中,如何访问 UITableViewController 类中的 IBOutlet

ios - 管理方向变化时 Collection View 单元格布局的正确方法

iphone - 更改 IOS 应用程序上 TabBar 应用程序中的当前屏幕

ios - Swift:我的委托(delegate)协议(protocol)方法需要在另一个 View Controller 上执行

ios - 没有.self的swift类作为参数

ios - NSUserdefaults - 如何在 Swift 2.2 Xcode7 中使用 objectforkey

ios - 无法续订 Apple 开发者成员(member)资格

ios - 快速获取 SKShapeNode 的面积