Iphone 当uisplitviewcontroller的视图更改时,不显示BarButtonItem
我的应用程序使用tabbarcontroller作为窗口的根视图,单击每个选项卡项即可为splitviewcontroller加载所需的视图。拆分视图的左窗格和右窗格是导航控制器。现在,在tableview中的任何按钮操作或didselectrow上,相应的视图将加载到右窗格中。我成功地在右窗格中加载视图,但在拆分视图的右窗格中加载新视图控制器时,无法显示BarButtonim 塔巴控制器 -->splitviewcontroller ----->左窗格:导航控制器 --------------->视图控制器 ----->右窗格:导航控制器 --------------->视图控制器 选项卡栏的每个拆分视图都将类似于“iPad邮件应用程序” 为了使应用程序通用化,我使用了RootiPadViewController类,它有uisplitviewcontroller和uipopovercontroller的委托,uipopovercontroller在slpitview中加载所有视图 已在拆分视图的右窗格中加载viewcontroller,如下所示Iphone 当uisplitviewcontroller的视图更改时,不显示BarButtonItem,iphone,ios,uisplitviewcontroller,uitabbaritem,Iphone,Ios,Uisplitviewcontroller,Uitabbaritem,我的应用程序使用tabbarcontroller作为窗口的根视图,单击每个选项卡项即可为splitviewcontroller加载所需的视图。拆分视图的左窗格和右窗格是导航控制器。现在,在tableview中的任何按钮操作或didselectrow上,相应的视图将加载到右窗格中。我成功地在右窗格中加载视图,但在拆分视图的右窗格中加载新视图控制器时,无法显示BarButtonim 塔巴控制器 -->splitviewcontroller ----->左窗格:导航控制器 --------------
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中更改视图时不显示栏按钮项
应用程序如下所示
我可能错了,但据我所知,仅当您处于纵向模式时,条形按钮项才会出现,因为:
- 拆分视图控制器有两个控制器(主视图控制器和局部视图控制器)
- 当您处于横向模式时,两个视图控制器都会显示在屏幕上
- 当您处于纵向模式时,仅显示局部视图控制器,因此显示条形按钮项
- 条形按钮项的目标是让您在纵向模式下打开主视图控制器
请让我知道这是否对您有帮助。对于导航控制器,每个视图都应定义其左右栏按钮项,如果未定义任何内容,则选项卡栏将为空。您将获得的唯一免费barbutton项是back barbutton项,当您将新视图控制器推到navigationController的rootViewController上方时,该项出现
您必须在navigationController中每个viewController的ViewDidLoad方法中分配它们,并将它们设置为parentViewController(即navigationController)的右和左按钮项。请检查此示例项目 它是关于如何在UITabBar中使用UISplitViewController的。
所有逻辑都在Appdelegate的
-loadSplitToTab
中,只是全部继承了所有控制器,在其他情况下,UISplitViewController需要是根(如Apple文档中所述)您将无法在UITabBar中使用UISplitViewController。我的意思是说barbuttonitem不以纵向模式显示。我添加了self.navigationItem.leftBarButtonItem=barbuttonitem的引用;如果视图处于纵向模式,其中barbuttonitem是通过spliviewcontroller“willHideViewController…”委托方法获取的