我正在尝试写,如果是其他声明。
我需要它来检查atextField
是否为空或有字母,如果textfield
为空或字母是否触发UIAlertWIndow
。
我尝试过布尔方法无济于事。
有什么想法吗?
这是我到目前为止所写的:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if self.numOfGuestsData.text == "" {
alert()
println("Something Amish")
let alertController = UIAlertController(title: "Split The Bill", message:
"Please Enter The Number of Guests!", preferredStyle: UIAlertControllerStyle.Alert)
alertController.addAction(UIAlertAction(title: "Okay", style: UIAlertActionStyle.Default,handler: nil))
presentViewController(alertController, animated: true, completion: nil)
} else if self.numOfGuestsData.text != "" {
let subTotalVC = segue.destinationViewController as subTotalAmountViewController
subTotalVC.numOfGuests = numOfGuestsData.text
println("everything is Ok Here")
}
}
此外,如果我取出警告窗口,if else语句由于某种原因失败。
就像我这样写:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if self.numOfGuestsData.text == "" {
alert()
println("Something Amish")
} else if self.numOfGuestsData.text != "" {
let subTotalVC = segue.destinationViewController as subTotalAmountViewController
subTotalVC.numOfGuests = numOfGuestsData.text
println("everything is Ok Here")
}
}
它只是去了其他地方......
答案 0 :(得分:1)
如果textField为空,你是否试图压制segue并且如果是这样的话,会出现UIAlertController?你在使用show segue吗?我认为您的逻辑需要移出prepareForSegue:
并转移到shouldPerformSegueWithIdentifier:
。请检查该方法。在prepareForSegue:
中执行逻辑为时已晚; segue肯定会在那时发生。
基本上,您将根据您的逻辑覆盖shouldPerformSegueWithIdentifier:
,然后覆盖return true
或return false
。如果它返回false,则segue不会发生。
文档here。