1

私はUITabBarController2つのタブを持っています。各タブには、UISplitViewControllerそれ自体に同じものがあります。MasterViewControllerinメソッド内で現在どの分割ビューが開いているかを確認するために、タブバーコントローラーの選択されたインデックスの値を確認したいのですがUITableViewDelegate、間違った値が返されます。インデックス 1 が選択されている場合でも、常に 0 を返します。

appdelegate では、ループ内の同じコードで両方を次のように初期化しました。

             MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController_iPad" bundle:nil];

             UINavigationController *masterNavigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];

             detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController_iPad" bundle:nil];                 
             UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController];

             masterViewController.detailViewController = detailViewController;

             self.splitViewController = [[UISplitViewController alloc] init];
             splitViewController.tabBarItem = controller.tabBarItem;
             self.splitViewController.delegate = detailViewController;
             self.splitViewController.viewControllers = @[masterNavigationController, detailNavigationController];
             [controllers replaceObjectAtIndex:index withObject:splitViewController];

}

どんな助けでも大歓迎です!iPhoneで問題なく動作するため、splitViewControllerに問題がある可能性があると思います。

4

1 に答える 1

1

私の推測では、それはあなたがViewController期待しTabBarControllerているためparentViewControllerです。チェックしてみてくださいself.splitViewController.tabBarController.selectedIndex

ただし、アプリのルートとして SplitViewController を使用し、TabBarControllerマスター内に配置することをお勧めします。この方法で同じ効果を得ることができ、より正確になります。お役に立てれば!

編集:

ビュー コントローラー カタログによると、「分割ビュー コントローラーは、作成するインターフェイスのルートである必要があります。つまり、アプリケーションのウィンドウのルート ビューとして常に UISplitViewController オブジェクトからビューをインストールする必要があります。分割のペインビュー インターフェイスには、ナビゲーション コントローラー、タブ バー コントローラー、またはインターフェイスを実装するために必要なその他の種類のビュー コントローラーを含めることができます。分割ビュー コントローラーはモーダルに表示できません。"

したがって、タブ バー コントローラーには配置しないでください。

于 2013-04-06T09:48:49.613 に答える