2010-04-10 99 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