2012-01-26 75 views
1

我在文檔中看到,現在您可以在UINavigationController中爲leftBarButtonItems和rightBarButtonItems創建一個項目數組,並且不必創建UIToolBar並將其設置爲按鈕。我基本上需要在navigationController的「後退」按鈕旁邊的左側的「主頁」按鈕。因此,它看起來像:在iOS 5中使用UINavigationController設置leftBarButtonItems

BackButtonFromNavigationController HomeBarButtonItem 

我不知道我是如何得到的導航欄的後退按鈕進入我的陣列一次創建我爲homeButton。我想這一點,但我只看到了navigationController的backBarButton:

if ([self.navigationItem respondsToSelector:@selector(setLeftBarButtonItems:)]) { 
    UIBarButtonItem *hButton = [self createHomeButton]; 
    self.navigationController.navigationItem.leftBarButtonItems = [NSArray arrayWithObjects:self.navigationItem.backBarButtonItem, hButton, nil]; 
} 

每個編輯smparkes響應:

if ([self.navigationItem respondsToSelector:@selector(leftItemsSupplementBackButton)]) { 
    self.navigationItem.leftItemsSupplementBackButton = YES; 
    self.navigationItem.leftBarButtonItem = homeBBI; 
} 

我知道homeBBI正確,因爲我有它創造了我UIToolBar作爲rightBarButtonItem之前的iOS 5.現在我只是想把它移到左邊,我用同樣的按鈕來查看它是否會工作,但它似乎仍然不起作用...

回答

8

不要把後退按鈕放在陣列。使用leftItemsSupplementBackButton使按鈕陣列添加到而不是替換後退按鈕。一旦你這樣做了,它聽起來不像你甚至需要一個數組。

我想你會看到你所看到的行爲,因爲你的按鈕數組是空的。您正在添加self.navigationItem.backBarButtonItem,這可能是nil。您希望控制器中的後退按鈕位於導航堆棧的更深處,而不是當前控制器的後退按鈕。

+0

我更新了我的代碼段,但我的按鈕仍然不顯示。 – Crystal 2012-01-27 00:45:31

+0

它看起來沒問題,只要homeBBI不是零(你仔細檢查)?否則,不確定。 – smparkes 2012-01-27 00:55:47

+0

是的,我檢查了它不零,仍然不顯示不幸。將繼續檢查。儘管謝謝你的迴應! – Crystal 2012-01-27 16:20:58

0

我有同樣的問題。在我的情況下,隱藏其他按鈕的原因是我一直在使用自定義標題視圖。隨着文檔狀態:

如果沒有足夠的空間的陣列,那些將重疊標題視圖(如果存在)或在杆的右側的按鈕在顯示所有的項目顯示。

更改自定義標題視圖的大小的確解決了我的問題。也許這個提示會幫助別人。

相關問題