简介
我正在创建一个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?
答案 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)
单击First ViewController的Round Yellow / White图标(图像左侧突出显示),然后拖动到下一个ViewController(例如SubmitOTPVC)。 然后将此代码写入swift文件:
self.performSegue(withIdentifier: "otpVC", sender: nil)
此处otpVC
是segue的标识符名称。