iOS 6.1.2 の iPad で UITabBarController を UISplitViewController (マスター ビュー コントローラー用の UITableViewController を持つ) と共に使用すると、異常な動作が発生します。複数のタブがあり、そのうちの少なくとも 1 つのタブに分割ビュー コントローラーが含まれており、分割ビュー コントローラーを含むタブを横向きモードで表示している場合、別のタブに切り替えて縦向きモードに移動し、次に を押します。分割ビュー コントローラーを含むタブで、マスター ビュー コントローラー (テーブル ビュー コントローラー) がテーブル ビューを詳細ビューの上に表示します。この動作は、アプリが初めて読み込まれたときにのみ発生しますが、一貫した動作です。
このシナリオは、iPad デバイスと Core Data を使用する分割ビュー アプリケーションであるプロジェクトを作成するだけで簡単に再現できます (Core Data を使用せずに試したことはありません)。プロジェクトが作成されたら、ストーリーボードを使用してタブ バー コントローラーを追加し、それを最初のビュー コントローラーにしてから、ビュー コントローラー シークをタブ バー コントローラーから分割ビュー コントローラーに追加します。その後、AppDelegate.m の application:didfinishLaunchingWithOptions の 1 行を変更するコードで 1 つの変更のみが必要です。
次のテンプレート コードを変更します。
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
に:
UITabBarController *tbc = (UITabBarController *)self.window.rootViewController;
UISplitViewController *splitViewController = [tbc.viewControllers lastObject];
おそらく私はいくつかの iOS ルールを破っていて、すべきでないことをしようとしていますか? 私がやりたいことは、いくつかの異なる分割ビュー コントローラー間でタブ移動できるようにすることだけです。提案?