2015-01-22 3 views
0

Я пытаюсь написать и если заявление else.Swift Xcode 6 Если инструкция Else проверяет буквы или цифры

Мне нужно его проверить, является ли 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") 
    } 
} 

Кроме того, если я вынимаю предупредительного окном, если другое заявление терпит неудачу по какой-то причине.

Как, если я пишу это так:

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

вместо проверки, если строка равна "", почему бы не использовать, если countElements (myString) == 0 –

+0

Я никогда не знал об этом = P Я дам ему шанс! –

+0

не исправит вашу проблему, просто хорошая практика, чтобы придерживаться :) –

ответ

1

Вы пытаетесь подавить SEGUE если TextField пуст и представить UIAlertController вместо этого, если это так? Вы используете шоу-сегу? Я думаю, что ваша логика должна быть перемещена из prepareForSegue: и перемещена в shouldPerformSegueWithIdentifier:. Сделайте свой чек в этом методе. Выполнение логики в prepareForSegue: слишком поздно; к тому времени, к сожалению, к тому времени это произойдет.

В принципе, вы переопределите shouldPerformSegueWithIdentifier:, а затем либо return true, либо return false на основе вашей логики. Если он вернет false, segue не произойдет.

Документация here.

+0

Да, правильно! Ах, я не знал об этом shouldPerformSegueWithIdentifier Спасибо большое! –

+0

Получил это, чтобы работать отлично спасибо !!! –

+0

@JoeCRONEScrivens не забудьте сделать правильный ответ trevorj, если он сработает для вас. Просто отметьте зеленую кнопку. – Cesare

Смежные вопросы