Как вернуть (пропустить остаток) функцию в swift, если выполнены условия - PullRequest
0 голосов
/ 02 мая 2018

У меня настроен segue для выполнения при нажатии кнопки. Я хочу завершить функцию и аннулировать переход, если текстовое поле в текущем контроллере представления равно нулю. Пока не повезло. Как бы я поступил так? Вот что у меня есть:

@IBAction func myButton(_ sender: Any) {
    if textField.text == nil {

        return

    } else {

    performSegue(withIdentifier: "theSegue", sender: sender)

    }
}

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Хотя в документации это указано (объявлено как необязательное), свойство text на самом деле не равно nil ( По умолчанию это строка "@" ").

Рекомендую дополнительно проверить наличие пустой строки.

@IBAction func myButton(_ sender: Any) {
   guard let text = textField.text, !text.isEmpty else { return }
   performSegue(withIdentifier: "theSegue", sender: sender)
}
0 голосов
/ 02 мая 2018

Использование guard или if let:

guard let text = textField.text else {
            return
        }

Ваш код будет так:

@IBAction func myButton(_ sender: Any) {

    guard let text = textField.text else {
            return
        }    
    performSegue(withIdentifier: "theSegue", sender: sender)

}
...