1

我有UITabBarController两个标签。每个选项卡UISplitViewController本身都有相同的内容。MasterViewController我想查看 tabbarcontroller 的选定索引的值,以查看现在在 in方法中打开了哪个 splitview 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];

}

任何帮助将不胜感激!我认为 splitViewController 可能存在一些问题,因为它在 iPhone 上运行良好。

4

1 回答 1

1

我的猜测是,这是因为您ViewController期望TabBarController它是parentViewController. 你可以试试检查self.splitViewController.tabBarController.selectedIndex

但是,我建议您使用 SplitViewController 作为应用程序的根,并将其TabBarController放在您的主控器中。您可以通过这种方式达到相同的效果,并且会更正确。希望这可以帮助!

编辑:

根据视图控制器目录“拆分视图控制器必须始终是您创建的任何界面的根。换句话说,您必须始终从 UISplitViewController 对象安装视图作为应用程序窗口的根视图。拆分的窗格视图界面可能包含导航控制器、标签栏控制器或任何其他类型的视图控制器,您需要实现您的界面。拆分视图控制器不能以模态方式呈现。

所以不要把它放在标签栏控制器中。

于 2013-04-06T09:48:49.613 回答