windowプロパティがnilなんですけど

つい最近、UIWindowの値がほしかったので、UIViewのwindowプロパティからUIWindowのインスタンスを取得しました。 動作を確認したら何かがおかしい。デバッグしてみたらwindowがnilでした。

なんでそんなことになったのかはわかりませんが、UIWindowのインスタンスが必要だったので困っていたら、違うアプローチで 取得できることがわかりました。

[[[UIApplication sharedApplication] delegate] window]

で取れるようです。

iOSのバージョンによっては、setNeedsLayoutをしてからでないとUIWindowがとれないこともあるようです。