有条件的塞维特

我想在我的应用程序中做一个“连接”button。 而当你点击它,它会打开一个新的页面,如果你有正确的login。

但是,我读了,我们不能撤消一个segue,我想我需要手动调用它。 你有好主意吗 ?

我仍然尝试这样的事情:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject) { if checkLog == true { //finish } else { // undo } } @IBAction func ConexTAP(sender: UIButton) { //check login } 

您可以在您的ViewController中使用以下方法进行凭据检查:

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

另外,你可以将UIButton绑定到你的视图控制器中的一个动作,在这里执行检查,然后通过代码触发一个segue。

在Swift中你可以继续:

第1步:从ViewControllerA向ViewControllerB插入一个segue。 segue应该从ViewControllerA本身开始,而不是从任何控件(如Button)开始。

步骤2:在故事板中给出一个唯一的标识符。 例如:seageFromAtoB

第3步:在你的ViewControllerforA.swift中写入:

 if(condition == true) { self.performSegueWithIdentifier("seageFromAtoB", sender: self) } 

如果你正在执行一些其他线程的任务,然后使用performSegueWithIdentifier可以抛出一个exception。

如果你得到这个错误,那么你应该使用:

 if(condition==true){ NSOperationQueue.mainQueue().addOperationWithBlock { self.performSegueWithIdentifier("seageFromAtoB", sender: self) } } 

这将执行从ViewControllerA到具有特定条件的ViewControllerB。