ios - 使用 shouldPerformSegueWithIdentifier 快速取消 segue

标签 ios swift segue uistoryboardsegue alertview

我有一个检查登录是否正确的功能。如果没问题,我会显示下一个屏幕。如果用户不正确,我会取消 segue 并显示警报。

问题的出现是因为当我在shouldPerformSegueWithIdentifier函数中调用这个函数时,我给一个 bool 变量赋值(如果用户正确与否)然后shouldPerformSegueWithIdentifier的返回值就是这个 bool 值。问题是它不采用该值并保持默认值。这是我的代码:

override func shouldPerformSegueWithIdentifier(identifier: String!, sender: AnyObject!) -> Bool {

    var userIsCorrect = false //THIS IS THE BOOLEAN

    if identifier == "fromLogInToGetIn" {

        self.loginRequest("http://myurl.com",

            withParams: ["email":"email@email.com","password":"password"])

        {

            (succeeded: Bool, msg: String) -> () in

            var alert = UIAlertView(title: "Success!", message: msg, delegate: nil, cancelButtonTitle: "Okay.")

            if(succeeded) {

                if msg == "0"

                {

                    userIsCorrect = false // BOOLEAN DOES NOT TAKE THE VALUE

                    alert.title = "Error"

                    alert.message = "Incorrect user"

                }

                else

                {

                    userIsCorrect = true // BOOLEAN DOES NOT TAKE THE VALUE

                }

            }

            else {

                userIsCorrect = false // BOOLEAN DOES NOT TAKE THE VALUE

                alert.title = "Error"

                alert.message = "Something is wrong"

            }

            // Move to the UI thread

            dispatch_async(dispatch_get_main_queue(), { () -> Void in

                // Show the alert

                if userIsCorrect == false

                {

                    alert.show()

                }

            })

        }

    }

    return userIsCorrect // ALWAYS RETURN DEFAULT VALUE

}

提前致谢。

最佳答案

只需将 segue 与 ViewController A 连接到 ViewController B,假设 segue 的名称是 mySegue1, 假设单击了登录按钮。检查一切是否正确。如果正确的话,

         self.performSegueWithIdentifier("mySegue1", sender: self)

关于ios - 使用 shouldPerformSegueWithIdentifier 快速取消 segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27224377/

相关文章:

带有水平 ScrollView 的顶部 iOS 下拉菜单

ios - Swift 如何通过点击 map 注释上的右侧附件标注按钮来查看 View

swift - 如何在 segue 期间将数据传递给 2 个或更多 ViewController

ios - 如何在 Objective C 中订阅 youtube channel ?

ios - 对包含 NSRange 值的数组进行排序

ios - Model View Presenter 和 iOS (Swift) 架构

ios - 为什么导航栏背景颜色没有改变?

asynchronous - swift iOS8 : perform segue after TouchID authentication

ios - 如何使 Xcode 8.2.1 刷新配置文件列表?看起来像 Xcode 错误

ios - swift - 弹出窗口指针未指向其调用者