ios - 我应该使用 segue 在注册屏幕和我的应用程序的其余部分之间移动吗

标签 ios swift xcode authentication segue

我已经使用 firebase 为我的应用程序创建了一个登录/注册屏幕,现在当用户成功登录或注册时,我想将他们转移到我的应用程序的其余部分。

我目前正在使用 segue 来执行此操作,因此无论何时用户输入在 firebase 数据库中有效的信息,或者每当他们注册并在数据库中创建他们的信息时,segue 都会将他们带到应用本身。

我是 Xcode 的新手,不知道这样做是否安全。例如,如果用户以某种方式操纵 segue 将他们带到那里,这是否会造成用户能够进入我的实际应用程序而无需在数据库中正确识别的危险?我不想在我的应用程序中出现任何此类危险,并且想知道是否有任何其他方法可以或应该完成此操作。

非常感谢。

最佳答案

使用 segue 很好,但您可能需要考虑反向操作。

如果用户未注册,当应用程序启动时,从主应用程序 View Controller 中呈现一个模态注册 View Controller 。在他们输入信息并通过验证后,执行unwind segue 以返回主应用程序屏幕。

这样做的原因是它释放了登录/注册屏幕使用的内存。你这样做的方式在应用程序运行的整个过程中将登录/注册 VC 保存在内存中。

UITabViewController 中的主 viewController 如下所示:

class FirstViewController: UIViewController {

    var loggedIn = false

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        if !loggedIn {
            self.performSegue(withIdentifier: "LogInSignUp", sender: self)
        }
    }

    // This is the target of the unwind segue        
    @IBAction func finishedLoggingIn(_ segue: UIStoryboardSegue) {
        loggedIn = true
        print("logged in and ready to go!")
    }

}

如果您在 Attributes Inspector 中为 "LogInSignUp" segue 取消选中Animates 复选框,登录屏幕将立即出现而没有动画,但一旦登录完成(在展开 segue 期间),它仍然会下降。

关于ios - 我应该使用 segue 在注册屏幕和我的应用程序的其余部分之间移动吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48934240/

相关文章:

xcode - NS 对象没有可识别的成员

iphone - 有没有办法在 iOS 中为 float 添加逗号,或者至少将其显示为货币?

ios - 使用大小类更改字体大小

ios - 在两个iOS设备之间发送视频的最佳方法是什么?

ios - iOS 17 中弃用了一堆 UIGraphics 方法,没有明确的替代方案?

swift - 如何知道哪个CharacterSet包含给定的字符?

ios - 将嵌套类写入 plist

ios - 当我尝试登录或注册我的应用程序时,Swift 窗口层次结构错误?

iphone - 如何为 UILocalnotification 增加/减少 application.badge 号码

ios - 使用核心数据的配置文件屏幕