我已经使用 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/