2010-04-10 119 views
13

我看到一堆iPad的应用程序与非常酷的标题栏。这些似乎是导航栏和工具栏的组合。他们通常有一个后退按钮和一个标题以及其他按钮。而导航栏只支持左侧项目,右侧项目和标题视图。而工具栏并不真正支持后退按钮或标题。iPad标题栏。导航栏或工具栏?

那么如何在UINavigationController驱动的应用程序上实现这些带有许多按钮的丰富导航栏呢?

+0

伟大的问题。我期待有识之士! (Tumbleweeds吹我的相关问题:http://stackoverflow.com/questions/2511558/view-controller-nib-architecture-for-non-navigation-application-with-transitions) – 2010-04-10 02:32:50

回答

10

您可以通过将一个UIToolbarUINavigationItem像这样得到这样的效果:

self.navigationItem.title = @"My Title";  


UIToolbar *tb = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 100, 44)]; 
tb.items = [NSArray arrayWithObjects:button1,button2,button3,nil]; 

UIBarButtonItem *tbItem = [[UIBarButtonItem alloc] initWithCustomView:tb]; 
self.navigationItem.rightBarButtonItem = tbItem; 

[tbItem release]; 
[tb release]; 

来源:this blog, via google.

+0

我发现这很有用。我发现唯一的缺点是你不能真正拥有一个半透明的导航栏,因为半透明的工具栏在顶部绘制,并且你在该区域获得几乎完全不透明的东西。 – 2010-04-19 04:47:37

+0

嗯......你可能可以通过在视图层次结构中做一些小动作来删除UIToolbar的背景...... – igul222 2010-04-19 22:16:04

4

的大多数应用程序使用的是UISplitViewController在它们的底部水平,具有UIToolbar在分割视图控制器的较大右侧细节视图的顶部。左侧视图由UINavigationController提供。这为您提供了左侧工具栏中的导航控件以及右侧的多个工具栏按钮。这些是位于屏幕顶部的独立条形,但如果两者都使用相同的样式,则它们可能会合并在一起。

有关如何做到这一点的例子,您可以将源代码下载到我的通用的iPhone/iPad应用Molecules望向SLSMoleculeAppDelegate,我在那里构建代码拆分视图控制器,以及SLSMoleculeiPadRootViewController,在这里我设置里面了解工具栏及其项目。

2

您还可以隐藏导航控制器
self.navigationController.navigationBarHidden = YES; 。 但同时,在工具栏左侧添加一个后退按钮,这将调用popviewcontrollers