0

ユーザが通知の登録を許可しているかどうかに応じて、いくつかのスイッチをView Controllerで作成したいとします。初めてこのビューのロードとregistrationForNotificationsのときにUIAlertcontrollerからUIAlertActionを取得する方法

appDelegate.registerForNotifications(UIApplication.sharedApplication()) 

がAlertControllerのviewDidLoadで呼ばれているが示されており、期待通りのViewControllerは、したがって、ユーザが通知を/いないことができた場合の依存関係が欠落し、そのレイアウトを完了します。

私は、アプリケーションが起動するとすぐに登録アラートを表示することができますが、このビューコントローラで許可を求めるのは、このビューにのみ関連し、それ以前は他のものではないためです。

viewWillAppearが呼び出される前にUIAlertActionをキャプチャする方法はありますか?

+0

あなたがしたいことはわかりませんが、マットの答えの最後の行が重要だと思います。ログインページを作成しようとしている場合は、[こちら](http://stackoverflow.com/questions/19962276/best-practices-for-storyboard-login-screen-handling-clearing-of)をご覧ください。 -data-upon-logou/21873051#21873051) – Honey

答えて

2

viewWillAppearが呼び出される前にUIAlertActionをキャプチャする方法はありますか?

いいえ、そうではありません。あなたは、の前に、viewDidLoadの前に、viewWillAppearのように何もしません。これらの方法でのあなたの仕事は、必要に応じて(例えば、初期化を行うことによって)反応し、できるだけ早く途絶えることです。どのような方法でもView Controllerの外観を遅らせてはいけません。

代わりに、アーキテクチャを再考してください。

ビューコントローラのビューが表示されます。だからそれを聞かせて!ユーザーが登録を拒否した場合、ボタンを有効にしないようにして、ボタンを無効にしてから、それが許可された後にのみ有効にする(または警告アクションのハンドラで学習する)ようにしてください。

または、このビューコントローラが登録を許可するユーザに完全に依存している場合は、登録をアプリの前の段階に移してください。

+0

マット、ありがとう! – richc

関連する問題