2009-07-24 71 views
1

可能嗎?導航欄左側的1個以上按鈕

我有一個UINavigationBar,我希望在'後退'按鈕旁邊有'編輯'按鈕。從我讀過的東西你只能有一個或另一個,這是沒有意義的,因爲它們是navigationItem對象(backBarButtonItem和leftBarButtonItem)的獨立屬性。

我假設你必須以某種方式在UINavigationBar中插入自定義UIView。我正在研究這個選項,如果沒有給出更好的解決方案,那麼我將概述這種方法。

回答

2

簡短的回答是:

是的,你有你自己的UIButton的觀點(或其他UIControl子類)添加到導航控制器,你自己。因此,忽略自定義* ButtonItem屬性並自行滾動。

一個涉及多一點的回答是:

蘋果使得它很容易按照自己的準則HIG,但你是你自己,如果你想打破他們或自定義。在這種情況下,只允許使用一個按鈕,因爲實際點擊區域大於顯示按鈕的大小 - 從可用性的角度來看,更容易點擊。

多餘:

順便說一句,有左/ rightBarButtonItem和backBarButtonItem之間的微妙區別。左/右在當前UIViewController上指定。然而,後退由前面的UIViewController指定。

+0

如果我理解正確,點擊框大於按鈕是有意義的,但是分割按鈕等等呢?蘋果明確允許在他們的UIG。 – Brenden 2009-07-28 15:45:24

1

使用自定義視圖確實是您唯一的選擇。 UINavigationBar不是非常靈活。你需要做的是創建一個包含UIButtons的UIView。確保你意識到如果你使用自定義視圖,你會獲得backBarButtonItem自動行爲的;你必須創建你自己的IBActions,以及按鈕的圖形。

在相關說明上,我不確定這是否是最好的主意。堅持Apple的UI準則通常是明智的;沒有其他地方可以放置編輯按鈕嗎?例如,酒吧的右側?

+0

問題是2按鈕,編輯和導入。它們都會影響所選的當前項目。我將不得不考慮其他導入選項。 – Brenden 2009-07-28 15:44:40

1

@ Kelvin的答案適用於iOS 5之前的版本,如果您使用的是iOS 5+,則現在有leftBarButtonItems數組屬性。請注意,您還必須將leftItemsSupplementBackButton設置爲true。