Cocoa segue设置问题

时间:2016-08-03 16:50:48

标签: xcode cocoa segue

在同一个ViewController上,我只有在满足条件的情况下才会以编程方式触发一个segue,如果按下某个按钮而不管条件是否满足,我还希望执行另一个segue。

未执行第二个segue,表示不符合条件 第一个segue具有标识符“segue”,这是它以编程方式触发的方式:

function rowSelected(item,event){
    viewModel.personEntry(item);
    openDialog();
}

第二个segue具有标识符“segue2”,并且它从按钮连接到目标视图控制器。

如何让segue2独立于条件下进行?

2 个答案:

答案 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
    }
}