Swift Xcode 6如果Else语句检查字母或数字

时间:2015-01-22 15:00:32

标签: swift if-statement

我正在尝试写,如果是其他声明。

我需要它来检查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")
    }
}

它只是去了其他地方......

1 个答案:

答案 0 :(得分:1)

如果textField为空,你是否试图压制segue并且如果是这样的话,会出现UIAlertController?你在使用show segue吗?我认为您的逻辑需要移出prepareForSegue:并转移到shouldPerformSegueWithIdentifier:。请检查该方法。在prepareForSegue:中执行逻辑为时已晚; segue肯定会在那时发生。

基本上,您将根据您的逻辑覆盖shouldPerformSegueWithIdentifier:,然后覆盖return truereturn false。如果它返回false,则segue不会发生。

文档here