我正在尝试实现一个登录屏幕,当单击登录时它会继续“登录”。
我添加了一个 prepareForSegue() 重写以尝试在登录失败时取消它,但我没有看到任何在失败时取消 segue 的方法。
执行此操作的最佳方法是什么?
最佳答案
你应该覆盖 shouldPerformSegueWithIdentifier
并在登录失败时返回 false:
override func shouldPerformSegueWithIdentifier(identifier: String?, sender: AnyObject?) -> Bool {
if let ident = identifier {
if ident == "YourIdentifier" {
if loginSuccess != true {
return false
}
}
}
return true
}
针对 SWIFT 3 进行了更新
Swift 3 方法现在称为 shouldPerformSegue
override func shouldPerformSegue(withIdentifier identifier: String?, sender: Any?) -> Bool {
if let ident = identifier {
if ident == "YourIdentifier" {
if loginSuccess != true {
return false
}
}
}
return true
}
//扩展
如果您以编程方式调用 performSegueWithIdentifier,则不会调用此方法,但不需要调用它,您可以仅在登录成功时调用它,否则忽略它:
if loginSuccess {
performSegueWithIdentifier("login", sender: nil)
}
关于ios - Swift prepareForSegue 取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28883050/