ios swift:@IBAction 处理以避免 segue
ios swift: @IBAction handling to avoid segue
我有 2 个视图,第一个是输入一些数据,第二个是根据用户在第一个视图中输入的数据填写更多详细信息。
因此我有一个像这样的函数:
@IBAction func addNewCardSet(sender: AnyObject) { ...
let givenCardSetName = newCardSetName.text
if givenCardSetName != "" {
... save routine ...
}else{
updateLabel("Please fill in a name")
}
我还向 addNewCardSet 按钮添加了一个转场以对第二个视图进行转场。现在发生的情况是,如果用户没有输入姓名,我可以看到消息标签说 "Please fill in the name" 但片刻之后发生了 segue 并将用户发送到下一个视图而没有任何保存的数据.. .
如果我的保存方法没有错误并且是时候进行转场了,我可以只对转场 "allow" 做些什么?
你可以实现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
}
我有 2 个视图,第一个是输入一些数据,第二个是根据用户在第一个视图中输入的数据填写更多详细信息。
因此我有一个像这样的函数:
@IBAction func addNewCardSet(sender: AnyObject) { ...
let givenCardSetName = newCardSetName.text
if givenCardSetName != "" {
... save routine ...
}else{
updateLabel("Please fill in a name")
}
我还向 addNewCardSet 按钮添加了一个转场以对第二个视图进行转场。现在发生的情况是,如果用户没有输入姓名,我可以看到消息标签说 "Please fill in the name" 但片刻之后发生了 segue 并将用户发送到下一个视图而没有任何保存的数据.. .
如果我的保存方法没有错误并且是时候进行转场了,我可以只对转场 "allow" 做些什么?
你可以实现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
}