Xcode6でiOS7向けにMaster-Detailアプリを作る時の注意点 - 技術はメシのタネ
要は、iOS8にしか存在しないdisplayModeButtonItemにアクセスしているから悪いのです。
と言うわけで2箇所(AppDelegate.mとMasterViewController.m)ある当該部分をiOS8以前は実行しないよう、このようにif文で囲みました。
if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_1) {
navigationController.topViewController.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem;
}
これで良いのか悪いのかがサッパリ分からないのでスッキリしません。
たとえばこのような疑問が残ります。
- バージョンで見るのが正しいのか?フィールド(Selector?)の有無で判断するほうが良いのではないか。
- 比較に使っている定義がiOS7.1までしかない。コードとしては「7.1より大きいとき」となるので万が一7.2などが出たら動かない(出ないだろうけど)
- iOS7以下の時に何か実行しなければならない処理はないのか。
気にはなりますが、回避はできたのでひとまず良しとします。
0 件のコメント:
コメントを投稿