2015-12-22 2 views
0

Я хочу, чтобы данные не сохранялись и не отображались, если какое-либо из текстовых полей осталось пустым. Это то, что у меня есть, появляется предупреждение, когда я нажимаю кнопку сохранения, но текстовые поля по-прежнему сохраняются с пустым текстом при пустом.Проверьте, нет ли поля UITextfield и отображает предупреждение

// check if text feild is empty 

    if usernameLabel.text == "" || passwordLabel.text == "" || phoneNumber.text == "" || service.text == "" || address.text == "" { 

     // Alert 
     let optionMenu = UIAlertController(title: nil, message: "Please Enter Text", preferredStyle: .Alert) 

     // Add actions to the menu 
     let cancelAction = UIAlertAction(title: "Ok", style: .Cancel, handler: 
      nil) 
     optionMenu.addAction(cancelAction) 

     // Display the menu 
     self.presentViewController(optionMenu, animated: true, completion: nil) 

    } 


} //End save button 
+0

вы написали, если (usernameLabel .hasText() || passwordLabel .hasText()) { } –

+1

является сохранить действие написано в еще этого условия ?? –

+0

Отключить тему, но я бы не назвал экземпляр 'UITextField' как« имя пользователя ** Label ** »или« password ** Label ** »; хотя бы для того, чтобы избежать путаницы ... –

ответ

1

сначала удалить whitspace первый, потому что он также рассматривать в качестве символа. Поэтому необходимо удалить пробельные символы ниже кода,

-(NSString *)remove_whitespace:(NSString *)string_data /* Remove whitspace in the string */ 
{ 
     NSCharacterSet *whitespace = [NSCharacterSet whitespaceAndNewlineCharacterSet]; 
     string_data = [string_data stringByTrimmingCharactersInSet:whitespace]; 
     return string_data; 
} 

Затем, подсчитайте длину строки. если он больше 0, повторите всплывающее сообщение, как показано ниже,

if([self remove_whitespace:textstring]) 
{ 
NSLog(@"work"); 
    } 
else 
{ 
NSLog(@"so error"); 
} 

Есть ли?

1

после окончания, если добавить возвращение как этот

if usernameLabel.text.length == 0 || passwordLabel.text.length == 0 || phoneNumber.text.length == 0 || service.text.length == 0 || address.text.length == 0 { 

    // your code 
    return 
} 
+0

Я пробовал это, но получаю тот же результат. Он не останавливается, сохраняя пустой текст. –

+0

обновленный ответ. это будет делать – vaibby

1
if(usernameLabel.text.characters.count == 0 || passwordLabel.text.characters.count == 0 || phoneNumber.text.characters.count == 0 || service.text.characters.count == 0 || address.text.characters.count == 0) 
{ 
    // your code 
    return 
} 

Используйте .characters.count для проверки, проверяя, что текстовое поле пустое или нет.

+0

Я пробовал это, и я получаю сообщение об ошибке, что .length не имеет тип string –

+0

Я обновил свой ответ ... пожалуйста, проверьте его –

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