6

iOS 6 および iOS 5 と互換性を持たせようとしているタブ バー コントローラー アプリがあります。iOS 6 では、自動レイアウトを使用します。しかし、iOS 5 で実行しようとすると、NSLayoutConstraints を認識しないためにエラーが発生します。

私が知る限り、自動レイアウトを有効にせずに別のストーリーボードを使用する必要があります。ストーリーボードを新しいストーリーボードにコピーしましたが、アプリ デリゲートで使用するストーリーボードを設定する方法がわかりません。

これを行うコードは何ですか?

4

1 に答える 1

10

アプリ デリゲートで、次のようなコードを見つける必要があります。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard" bundle:nil];
self.window.rootViewController = [storyboard instantiateInitialViewController];
[self.window makeKeyAndVisible];

これは、iOS のバージョンに応じて、いくつかのストーリーボードから選択するコードを追加できる場所です。

UIStoryboard *storyboard;
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
if (...) {
    storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard-v5" bundle:nil];
} else {
    storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard-v6" bundle:nil];
}
self.window.rootViewController = [storyboard instantiateInitialViewController];
[self.window makeKeyAndVisible];
于 2013-03-31T00:30:09.063 に答える