2012-11-25 3 views
1

Предположим, у меня есть класс регистрации, и (кнопка UIButton) «Перейти». Я проверяю все поля, которые вводил пользователь, все поля UITextField. Я сделал действие для этой кнопки «Перейти» в классе Register, чтобы перейти к следующему ViewController нажатием, также в функции действия i проверить ввод пользователя (например, плохой адрес электронной почты x @ xxx) , и если пользователь ввел плохой ввод, я не хочу переходить на новый экран. Итак, чтобы сделать длинный рассказ коротким, мой вопрос заключается в том, как я создаю условие для перемещения между экранами. ", если пользователь вводил правильный ввод, поэтому сделайте ход ... else stay" Не хочу, чтобы еще одна кнопка проверила правильность формы, а затем сначала нажмите кнопку проверки, затем вторую кнопку отправьте форму.Как перемещаться между экранами с условием (если ...)

Спасибо!

ответ

1
-(BOOL) validateField:(UITextField *)field{ 

// perform your validation and return YES or NO 

return YES; 
} 

в вашей кнопки действия

BOOL validated = NO; 

if ([self validateField:textfield1]){ 

validated = YES;. 

}else{ 
return; // or your error message 
} 
if ([self validateField:textfield2]){ 

validated = YES; 
}else{ 

return;// or your error message 

} 

и так далее ..

if (validated){ 
[self pushViewController:yourcontroller] 
} 
+0

Я попытался сделать возврат; в моей кнопке действия, но она все еще делает ход –

1

Самый простой способ сделать это состоит в использовании BOOL. Например, вы можете установить этот BOOL на false в методе viewDidLoad. Если все ваши чеки, которые вы делаете с входными данными, переданы правильно, вы устанавливаете этот BOOL в true. Теперь вы можете использовать это значение либо для того, чтобы нажать следующий контроллер просмотра, либо не нажать его. Например,

if (theBOOL) { 
    // push the next view controller 
} else { 
    // display a message on the current view controller to recheck the input data 
} 
Смежные вопросы