2011-01-20 2 views
0

Я недавно начал учебу по разработке iOS, поэтому простите меня, если я прошу что-то слишком очевидное.alertView didDismissWithButtomIndex не вызывается после щелчка на buttom alertView

Когда загружается представление моего приложения, он проверяет конфигурации для некоторых ключей, и если для этих ключей нет значения, приложение должно отображать предупреждение и завершать работу.

Прежде всего, я реализовал UIAlertViewDelegate:

@interface FirstViewController : UIViewController <UIAlertViewDelegate> { 
... 

А затем проверяется на настройки:

- (void)viewDidLoad { 
      NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

       NSString *url = [defaults stringForKey:@"url"]; 
      NSString *apiKey = [defaults stringForKey:@"api-key"]; 

      if([url length] < 1 || [apiKey length] < 1){ 
      UIAlertView *dialog = [[[UIAlertView alloc] 
         initWithTitle:@"Not properly configured" 
         message:@"This application was not properly configured. Please configure the application on your iPhone settings." 
       delegate:self 
       cancelButtonTitle:@"Close" 
       otherButtonTitles:nil] 
       autorelease]; 
     [dialog setTag:1]; 
     [dialog show]; 
    } 

    [url release]; 
    [apiKey release]; 
    [super viewDidLoad]; 
} 

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

- (void)alertView:(UIAlertView *)alertView     didDismissWithButtomIndex:(NSInteger)buttomIndex { 
       if([alertView tag] == 1){ 
       exit(0); 
       } 
} 

Любые идеи о том, почему это происходит?

ответ

4

didDismissWithButtonIndex имеет орфографическую ошибку, вы вытаскиваете «m» вместо «n».

+0

+1 для острых глаз. Такие ошибки хуже всего, не так ли? Однажды я провел очень неприятный день, пытаясь связать событие onLick с веб-страницей ... Dang it! –

+0

@Dan Ray - Особо неприятно, если вы не знаете API очень хорошо, поэтому не можете предположить, что это ошибка, а не ошибка при использовании API. PS: После этого я обязательно увижу глазного врача. – Raphael

1

Вы слушаете за неправильный метод, вы должны реализовать:

alertView:clickedButtonAtIndex: 

В документ вы можете прочитать, что didDismissWithButtomIndex вызывается, когда dismissWithClickedButtonIndex: анимированные: называется на alertView.

alertView: didDismissWithButtonIndex: Направлено делегатом после оповещения зрения освобожден от экрана.

Так что ваш код для работы вы должны implementsomething как:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { 
    if(buttonIndex == ...) { 
    // do something 
    } 
} 

PS: Вы не должны вызывать выход (0), это плохая практика на прошивке, чтобы заставить приложение, чтобы бросить курить. Пользователь должен выйти из приложения с помощью кнопки «домой».

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