UIAlertView в iOS7 блокирует отображение при увольнении

У меня не было проблем с следующим кодом в версиях iOS до выхода iOS7, и теперь, когда я пытаюсь запустить это на iOS7, я получаю нежелательные результаты.

[self.view setUserInteractionEnabled:YES]; mAlert=[[UIAlertView alloc] initWithTitle:@"Alert" message:@"There are no more reports matching this search query." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [mAlert show]; [SVProgressHUD dismiss]; 

Появится предупреждающее сообщение и предложит пользователю нажать ОК. Когда предупреждение отклоняется, я оставляю теперь представление, с которым больше нельзя взаимодействовать, и единственным решением является перезапуск приложения. Само приложение не «заморожено», как в моем профиле, и я вижу, что оно все еще живое, я просто не могу с ним взаимодействовать. Я реализую UIAlertViewDelegate, а ниже – моя реализация функции didDismissWithButtonIndex:

 -(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex: (NSInteger)buttonIndex { mAlert = nil; } 

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

Вы уверены, что метод работает в основном потоке? Любой метод, который что-то делает с пользовательским интерфейсом, должен запускаться в основном потоке, а не в фоновом потоке.

Если вы хотите показать предупреждение из фонового потока, попробуйте это в фоновом режиме:

  [self performSelectorOnMainThread:@selector(showAlert) withObject:nil waitUntilDone:YES]; 

И добавьте способ, подобный этому

 - (void) showAlert { UIAlertView *mAlert=[[UIAlertView alloc] initWithTitle:@"Alert" message:@"There are no more reports matching this search query." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [mAlert show]; } 
Interesting Posts
Давайте будем гением компьютера.