UIAlertView отображается несколько раз после нажатия кнопки Home

#iphone #objective-c #cocoa-touch #ios #uialertview

#iPhone #objective-c #cocoa-touch #iOS #uialertview

Вопрос:

Я вызываю этот код в своем ViewController, если некоторые настройки не установлены или равны (по длине) нулю:

 UIAlertView *infoView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Achtung", nil) message:NSLocalizedString(@"Wrong Settings",nil)delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [infoView show];
    [infoView release]; 
  

Отображается Alertview, и если я нажимаю кнопку «Домой» и снова запускаю приложение, оно отображает предупреждение zwice, после этого, если я снова нажимаю кнопку «Домой» и запускаю приложение, предупреждение отображается 4 раза…..

Почему, черт возьми, это так?

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

У кого-нибудь есть предложения?

Комментарии:

1. Возможно, вы вызываете alert View 4 раза, пожалуйста, проверьте свой код должным образом.

2. Ваш UIAlertView хорошо реализован, я думаю, проблема в функции, в которой он вызывается. Можете ли вы показать нам функцию, в которой это вызывается?

3. Apple говорит, что вы должны отключить UIAlertView, когда пользователь нажимает кнопку home.

4. Большое вам спасибо за ваш ответ, но я понял, почему было так много предупреждений, мой код был правильным, но я вызывал [self.tableview viewdidload], и это открыло другой поток, а этот поток открыл еще два потока……

5. @verklixt Я знаю, что это старый пост, но не могли бы вы объяснить, что именно это значит, потому что у меня такая же проблема с предупреждением, созданным в одном файле, которое случайным образом отображается несколько раз в другом месте.

Ответ №1:

Что-то вроде этого

 - (void)viewWillDisappear {
    [super viewWillDisappear];
    [myAlert dismissWithClickedButtonIndex:0 animated:NO];
}
  

Комментарии:

1. Большое вам спасибо за ваш ответ, но я понял, почему было так много предупреждений, мой код был правильным, но я вызывал [self.tableview viewdidload], и это открыло другой поток, а этот поток открыл еще два потока……