ios - Swift prepareForSegue 取消

标签 ios swift

我正在尝试实现一个登录屏幕,当单击登录时它会继续“登录”。

我添加了一个 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/

相关文章:

swift - 我可以使用swift编程语言来开发框架吗?

swift - iOS13上下文菜单点击时如何显示或导航到当前的查看 View

ios - 如何将多个 iOS 应用程序打包销售

ios - 无法在 Swift 中获取最新的 CoreData DB 文件

iOS:如何获取刚刚在界面生成器中设置的 UIView 的框架

ios - 点击单元格时 UILabel 向右移动

ios - 本地通知不在从日期选择器中选择的确切时间工作,但在 swift 3 中几秒钟后

iphone - 将 NSData 加载到 UIWebView

ios - 如何在 Storyboard 中自动调整我的 View 大小? swift 3

swift - 将 url 从标记传递到 Controller