私は、前景ローカル通知を処理するためにAppDelegateでUIAlertControllerを作成しようとしています。私のコードは次のようになります。UIAavigationControllerをウインドウ階層に表示しないUIAavigationControllerにUIAlertControllerを表示しようとしました。
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)
}
}
しかし、私はこのエラーを取得する:そのビューウィンドウ階層ではありませんUINavigationControllerにUIAlertControllerを提示する試みを。
私はすでに解決策を見つけましたが、私のためには機能しません(dispatch_async、funcの作成)。私はそれが 'rootviewcontroller'の部分と関係があると思いますが、それを修正する方法はわかりません。これは修正できますか、フォアグラウンドでローカル通知を処理する別の方法がありますか?
UIを変更したり、新しいビューを表示するたびに、メインスレッド上にあることを確認する必要があります。それに奇妙な問題がある場合、dispatch_async(dispatch_get_main_queue()){...}は多くの場合、UIに関連する問題を修正します。 – SeanRobinson159