2015-10-19 2 views
3

Я хочу отклонить UIAlertControllers, которые были представлены ранее, перед тем, как представить новый UIAlertController. Мне нужно сделать это с AppDelegate. Как это может быть сделано. Все предложения приветствуются.Как отклонить представленный UIAlertController перед отображением другого в Objective C

+0

Это пахнет, как вы могли бы готовя код спагетти там, уход, чтобы выяснить, почему это происходит и должно сделать в App Delegate? –

+0

Но если вы нажмете кнопку, dispatch_async в основной поток и представите новый, вы должны быть хорошими –

+0

Хмм, я представляю UIAlertController каждый раз, когда появляется уведомление. Я хочу уведомить пользователя, когда он находится в приложении. Иногда бывает несколько уведомлений за раз, и нет никакого способа узнать, сколько из них действительно придет. Нажатие кнопок на каждом UIAlertController является громоздким. – Nitin

ответ

4

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

+0

Это работает: если ([[UIApplication sharedApplication] .keyWindow.rootViewController isKindOfClass: [UIAlertController класс]]) { [self.window.rootViewController dismissViewControllerAnimated: ДА завершение: ноль]; } – Nitin

0

Это должно помочь, вы можете расширить его до цикла для всех контроллеров зрения и взглядов:

[[UIApplication sharedApplication].keyWindow.rootViewController.view endEditing:YES]; 
+2

Что это касается вопроса? – rmaddy

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