ios swift:@IBAction处理以避免segue

时间:2015-03-02 11:54:33

标签: ios swift segue

我有2个视图,第一个输入一些数据,第二个根据用户在第一个视图中输入的数据填写更多详细信息。

因此,我的功能如下:

@IBAction func addNewCardSet(sender: AnyObject) { ...
let givenCardSetName = newCardSetName.text
if givenCardSetName != "" {
    ... save routine ...
}else{           
    updateLabel("Please fill in a name")
}

我还在addNewCardSet按钮中添加了一个segue来对第二个视图进行segue。现在发生的事情是,如果用户没有输入名称,我可以看到消息标签上写着“请填写名称”但稍后片刻发生了segue并将用户发送到下一个视图而没有任何保存的数据...

如果我的保存方法没有错误且是时候进行segue,我该怎样做才能“允许”segue?

1 个答案:

答案 0 :(得分:2)

您可以实施shouldPerformSegueWithIdentifier方法:

override func shouldPerformSegueWithIdentifier(identifier: String?, sender: AnyObject?) -> Bool {
  if let ident = identifier {
    if ident == "YOUR IDENTIFIER HERE" {
        let givenCardSetName = newCardSetName.text
        if givenCardSetName != "" {
            return true
        }else{           
            return false
        }
      }
  }
  return true
}