在同一个ViewController上,我只有在满足条件的情况下才会以编程方式触发一个segue,如果按下某个按钮而不管条件是否满足,我还希望执行另一个segue。
未执行第二个segue,表示不符合条件 第一个segue具有标识符“segue”,这是它以编程方式触发的方式:
function rowSelected(item,event){
viewModel.personEntry(item);
openDialog();
}
第二个segue具有标识符“segue2”,并且它从按钮连接到目标视图控制器。
如何让segue2独立于条件下进行?
答案 0 :(得分:0)
听起来好像你应该比较标识符,如果它与第二个segue名称匹配,则总是返回true。仅在标识符与第一个segue名称匹配时检查条件。
答案 1 :(得分:0)
我认为您应该将按钮链接到以编程方式执行segue的IBAction。另外,将检查条件的逻辑移动到您在视图控制器中某处调用的另一个函数。
@IBAction buttonPressed(sender: AnyObject) {
self.performSegueWithIdentifier("segue2", sender: self)
}
func checkCondition() {
if condition == true {
self.performSegueWithIdentifier("segue", sender: self)
}
}
override func prepareForSegue(segue: NSStoryboardSegue, sender: AnyObject!) {
if (segue.identifier=="segue") {
(segue.destinationController as! NSViewController).representedObject=someString
}
else if (segue.identifier=="segue2") {
// Do any segue 2 setup
}
}