今、Remote Pushを実装しています。やりたい事としては
- Pushが来たらAlertを出す
- AlertでOKを押すと、どの画面にいるか判断して遷移する
です。ので、今のViewControllerをとらねばなりません。
問題
そこで、Alertを出して、そのデリゲートで
[UIApplication sharedApplication].keyWindow.rootViewController
と書いていたのですが、なんとこれが、nilなのです。
けど、これをAlertを出す前にやると取得されます。
どうやら、Alertを出すと、keyWindowがAlertViewのものに変わってしまっており、そのrootViewControllerは設定されてないため、nilっぽいです。
これは、困った。困った。
解決策
ただ、今回は、Pushのときなので、AppDelegateに書いているので
self.window.rootViewController;
で取得出来ました。よかったよかった。
課題
これ、今回はAppDelegateだったからよかったものの、他の時ってどうするんだろう。
そんなことやること殆ど無いからいい気がするけども、気になる。
知ってる方おられましたら教えて下さい!