Я пытаюсь создать UIAlertController в AppDelegate для обработки локальных уведомлений на переднем плане. Мой код выглядит следующим образом:Попытка представить UIAlertController на UINavigationController, чей вид отсутствует в иерархии окон
func application(application: UIApplication, didReceiveLocalNotificationnotification: UILocalNotification) {
let state: UIApplicationState = application.applicationState
if state == .Active {
let alert: UIAlertController = UIAlertController(title: "test", message: "test", preferredStyle: UIAlertControllerStyle.Alert)
self.window?.rootViewController?.presentViewController(alert, animated: true, completion: nil)
}
}
Но тогда я получаю эту ошибку: Попытка представить UIAlertController на UINavigationController чей вид не в иерархии окон.
Я уже нашел возможные решения, но они не работают для меня (dispatch_async, создавая func). Я думаю, что это как-то связано с частью rootviewcontroller, но я не знаю, как это исправить. Может ли это быть исправлено или есть другой способ обработки локального уведомления на переднем плане?
Вы должны убедиться, что он находится в основном потоке при изменении пользовательского интерфейса или отображении нового вида. Если у вас возникли странные проблемы, то много времени dispatch_async (dispatch_get_main_queue()) {...} будет исправлять проблемы, связанные с пользовательским интерфейсом. – SeanRobinson159