Xcode6でiOS7向けにMaster-Detailアプリを作る時の注意点
Xcode6.xでMaster-Detailアプリをテンプレで作ると、iOS7では動かないソースが吐き出されます……orz
new projectの際に
Device
でUniversal
、iPad
を選んだ場合。
そもそも、おとなしくiPhone
を選んでおけばこんなに苦労することはなかったんや……。
なんであかんのじゃー、とネットを這いずり回って、ようやく答えを見つけたよ。
Ryanまじありがとう。
Stack Overflow
とかでも一応回答があったりしたんだけど、application(_:, didFinishLaunchingWithOptions)
の中身コメントアウトしろや、っていうだけだったんで、ベストアンサーはRyanで。
たぶんだけど、簡単に言うと、iOS8ではUISplitViewController
にはUINavigationController
の能力があるけど、iOS7のにはそれがないってことなのかな。
デフォルトで吐き出されるソース、iOS7がターゲットだと、application(_:, didFinishLaunchingWithOptions)
ですぐに止まるからね。
最初からiOS7除けしといてくれればいいのに。
splitViewController
がUINavigationController
にキャスト出来るか、displayModeButtonItem
を持っているか、isKindOfClass(UINavigationController)
でtrueが返ってくるかとか、なんでもいいんだけど。
コメントアウトしたりガードしたりするだけで動くんかい、と疑問に思うけど、動くんだよな。
特に、prepareForSegue
で戻るボタンの設定を次の画面に引き継がないようになると思うんだけど、実際にはきちんとDetail画面で戻るボタンを押すとMaster画面に戻ってこれる……。
storyboard上で設定できてるのか?
とりあえずRyanありがとう。