2015-06-01 5 views
0

Что не так со следующим кодом? Я изменю viewController, когда текст в alertView не будет пустым. Проблема в том, что он будет менять UiViewController каждый раз, даже если он пуст.UiAlertView должен изменить ViewController

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 

    if (buttonIndex == 0) { 
     if ([[alertView textFieldAtIndex:0].text isEqual:@""]) { 

      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Error warning" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 

      [alert show]; 
     } 
     else{ 

      UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
      UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"ChangeView"]; 
      [self presentViewController:vc animated:YES completion:nil]; 
     } 
    } 
} 
+0

Вы проверяете, что текст на самом деле пуст? – Tander

+0

С кодом, в первом предупреждении, если вы позволите ему пустить (не вводить), приложение покажет предупреждение «Предупреждение об ошибке», и когда вы нажмете кнопку «ОК», он переключится на случай «else», чтобы изменить UIViewController. Я думаю, что в предупреждении «Предупреждение об ошибке» делегат должен быть nil –

ответ

1

Вы должны сделать этот чек вместо:

if (![[alertView textFieldAtIndex:0].text.length) { 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Error warning" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
    [alert show]; 
} else ... 
+0

Он делает это уже? Просто другой синтаксис .. но такая же проверка. isEqual: @ "" совпадает с длиной 0. Не так ли? – Tander

+0

Спасибо, это работает! – Nanog000

+0

Другой короткий вопрос. Даже текстовое поле пуст, оно должно открыть «ошибку AlertView». Он работает, но «ошибка AlertView» появится всплывающее окно. Зачем? – Nanog000