技術はメシのタネ

底辺プログラマで技術の向上を目指しているけれどやりたい事が無くて困っている

Xcode6でiOS7向けにMaster-Detailアプリを作る時の注意点

Xcode6.xでMaster-Detailアプリをテンプレで作ると、iOS7では動かないソースが吐き出されます……orz

new projectの際にDeviceUniversaliPadを選んだ場合。
そもそも、おとなしくiPhoneを選んでおけばこんなに苦労することはなかったんや……。

なんであかんのじゃー、とネットを這いずり回って、ようやく答えを見つけたよ。

whoisryannystrom.com

Ryanまじありがとう。
Stack Overflowとかでも一応回答があったりしたんだけど、application(_:, didFinishLaunchingWithOptions)の中身コメントアウトしろや、っていうだけだったんで、ベストアンサーはRyanで。

たぶんだけど、簡単に言うと、iOS8ではUISplitViewControllerにはUINavigationControllerの能力があるけど、iOS7のにはそれがないってことなのかな。

デフォルトで吐き出されるソース、iOS7がターゲットだと、application(_:, didFinishLaunchingWithOptions)ですぐに止まるからね。

最初からiOS7除けしといてくれればいいのに。
splitViewControllerUINavigationControllerにキャスト出来るか、displayModeButtonItemを持っているか、isKindOfClass(UINavigationController)でtrueが返ってくるかとか、なんでもいいんだけど。

コメントアウトしたりガードしたりするだけで動くんかい、と疑問に思うけど、動くんだよな。
特に、prepareForSegueで戻るボタンの設定を次の画面に引き継がないようになると思うんだけど、実際にはきちんとDetail画面で戻るボタンを押すとMaster画面に戻ってこれる……。
storyboard上で設定できてるのか?

とりあえずRyanありがとう。