Swift阻止故事板发生

时间:2016-03-26 15:19:32

标签: swift storyboard

简介

我正在创建一个Swift 2.0应用,其中动作只能执行一定次数,例如8.为了完成此行为,我需要取消某个segue,performAction ,如果通过在故事板上按下与其链接的按钮来触发它。

研究

我遇到像http://stackoverflow.com/questions/8066525/prevent-segue-in-prepareforsegue-method这样的问题,建议代码如下:

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

     return true
 }

实施

我实现了它:

override func shouldPerformSegueWithIdentifier(identifier: "createCard" ,sender: AnyObject?) -> Bool {
    if amountOfTimes > 8 { //To be triggered if the segue should be cancelled
        return false
    } else {
    return true
    }
}

但是我收到了错误

  

预期','分隔符

如果amountOfTimes大于8,我怎样才能取消segue?

3 个答案:

答案 0 :(得分:1)

要检查您的标识符是否为"createdCard",请使用shouldPerformSegueWithIdentifier方法,如下所示:

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

    return !(identifier == "createCard" && amountOfTimes > 8)

}

答案 1 :(得分:1)

问题是这句话:

identifier: "createCard"

那不是斯威夫特。这不是函数调用,它是一个函数实现。你必须说:

identifier: String

identifier不是您设置的值,它是您接收的值。然后,您可以查看以查看它是否为"createCard",但您没有声明它是

答案 2 :(得分:0)

1 单击First ViewController的Round Yellow / White图标(图像左侧突出显示),然后拖动到下一个ViewController(例如SubmitOTPVC)。 然后将此代码写入swift文件:

 self.performSegue(withIdentifier: "otpVC", sender: nil)

此处otpVC是segue的标识符名称。