我正在尝试做什么:
我是如何尝试这样做的:
func buttonTapped{
if(condition is true){
// Perform actions
// Perform segue as normal
} else{
shouldPerformSegue(withIdentifier "mySegueIdentifier", sender: self){
return false
}
}
}
我收到的错误:
我在苹果文档中搜索了使用此方法的正确方法,但我仍然不确定如何操作。任何帮助将被感激地接受和高度赞赏。
答案 0 :(得分:2)
如果您想执行逻辑来决定是否应该“执行”segue,您需要覆盖 shouldPerformSegue
。这将允许操作系统(1)正确启动事物,(2)让您能够决定是否完成segue。
override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
if [criteria met to perform segue] {
return true
} else {
return false
}
}
答案 1 :(得分:1)
首先,你试图提供一个闭包作为方法的第三个参数,它不需要三个参数,根本不接受闭包作为参数,不应该调用这个方法根据你的代码。
其次,实现某种布尔标志'isSegueActive',根据相关按钮操作中的条件,将其设置为'false'或'true'。
第三,在视图控制器中覆盖'shouldPerformSegue'并使其返回'isSegueActive'的值。
这样当执行segue时,你的视图控制器会调用'shouldPerformSegue'来知道是否应该执行segue。