2013-05-02 44 views
0

我的应用程序与tabbarcontroller一起作为窗口的根视图,其中单击每个选项卡项目会为其装载带有所需视图的splitviewcontroller。分割视图的左右窗格是导航控制器。现在,在任何按钮操作或在tableview中显示相应的视图都将在右窗格中加载。我成功地在右窗格中加载视图,但是当在分割视图的右窗格中加载新视图控制器时无法显示barbuttonitem。当uisplitviewcontroller的视图发生变化时,不会显示BarButtonItem

tabbarcontroller

- > splitviewcontroller

-----> Leftpane:导航控制器

--------------->视图控制器

-----> Rightpane:导航控制器

--------------->视图控制器

标签栏的每个Splitview都会像'iPad Mail app'一样行事。

为了使应用程序生气,我采取了类的RootiPadViewController具有uisplitviewcontroller和uipopovercontroller委托在slpitview加载所有视图。

在分割视图的右窗格中加载视图控制器,如下所示。

UISplitViewController *splitViewController = (UISplitViewController*)[appDelegate.tabBarController.viewControllers objectAtIndex:tabIndex]; 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController]; 
//[navController pushViewController:viewController animated:YES]; 

NSMutableArray *array = [[NSMutableArray alloc] init]; 
[array addObject:[splitViewController.viewControllers objectAtIndex:0]]; 
[array addObject:navController]; 
splitViewController.viewControllers = array; 
[array release]; 

请告诉我为什么当在splitviewcontroller中更改视图时,bar按钮项不显示。

应用程序看起来如下enter image description here

enter image description here

回答

0

我可能是错的,但是从我的知识,当你在竖屏模式下栏按钮项目应只出现,这是因为:

  • 一分割视图控制器有两个控制器(主视图控制器和详细视图控制器)
  • 当您处于横向模式时,两个视图控制器都显示在屏幕上
  • 当你在肖像模式中,仅示出了详细视图控制器,从而出现栏按钮项
  • 栏按钮项目的目标是让你在纵向模式打开主视图控制器

请让我知道,如果这可以帮助你。

+0

我的意思是说barbuttonitem不以纵向模式显示 – SriPriya 2013-05-02 07:08:28

0

对于导航控制器,每个视图都应该定义它们的左右栏按钮项,如果没有定义,则该栏将为空。唯一barbutton项目你会得到免费的是它出现时,你推一个新的视图控制器的navigationController

的RootViewController的,你要不断给它们分配在每个的viewController您viewDidLoad方法在NavigationControoler并设置回barbutton项目他们是正确的,你的parentViewController(即navigationController)的左barbutton项目

+0

嗨我添加引用为self.navigationItem.leftBarButtonItem = barButtonItem;如果视图是在肖像模式下 其中barbuttonitem是通过spliviewcontroller“willHideViewController ......”委托方法得到 – SriPriya 2013-05-02 07:40:24

0

请查看此示例项目https://github.com/alexth/TBSV

它是关于如何使用UISplitViewController内UITabBar。 所有的逻辑是在AppDelegate中的所有控制器的-loadSplitToTab只是总继承,在UISplitViewController需要一个根(如苹果的文件中描述的),你将无法使用UISplitViewController内UITabBar所有其他情况。

相关问题