我在第一个标签中有一个带分割控制器的TabBar iPad应用程序。我按照这个说明去做:
现在我的目标是隐藏分割控制器的根视图控制器。我找到了一种方法来实现这个目标:
但这对我不起作用,因为它只能在假设分割控制器在MainWindow.xib中时起作用。但是使用前面的方法,可以以编程方式添加拆分控制器。
有人可以帮助我实现目标吗?任何想法都将不胜感激。
提前致谢!
以下是代码:
http://dl.dropbox.com/u/27695108/MariCruz.zip
我希望你能帮助我。
谢谢!
答案 0 :(得分:1)
您的项目存在一些问题。
1首先,您使用的是UITabBarController
,这就是您发现隐藏根视图控制器的代码不起作用的原因。
makeSplitViewController
实现,你正在初始化splitViewController
,rootViewController
和detailViewController
两次。因此,您必须修复第2点,以便您可以正确管理所有这些控制器,然后您应该修改toggleSplitView
,以便考虑到您正在使用UITabBarController这一事实。例如,将该方法的前几行替换为以下几行:
- (void)toggleSplitView {
NSArray *controllers = _tabBarController.viewControllers;
UIViewController* controller = [controllers objectAtIndex:1];
if (controller.view == splitViewController.view) {
[splitViewController.view removeFromSuperview];
splitViewController.viewControllers = [NSArray arrayWithObjects:rootViewController, rootViewController, nil];
splitViewController.view = detailViewController.view;
} else {
....
正如你所说,我没有访问_window
来检查UISplit是否存在,因为该视图不在_window下,而是在标签栏中。 if
的另一个分支也需要根据相同的标准重写,但我会留给你。
以上代码仅适用于您的第二个标签(与索引1对应的标签);实际上,由于您在splitViewController
中覆盖makeSplitViewController
,我只能在标签栏中使用索引1处的元素,而无需进行进一步更改。