10

我有一個導航欄一個UIView,我想添加一個按鈕,它看起來像一個返回按鈕的樣式。我沒有使用UINavigationController,並想知道如果沒有它可以做到這一點?自定義繪製後退按鈕在iPhone上導航欄

按鈕的樣式應該是這樣的:alt text

感謝

+2

@casperOne除了在回答近2年後關閉問題之外,爲什麼要關閉它呢? http://stackoverflow.com/questions/227078中的接受答案建議使用圖片,而Mike Weller的答案則更加優雅。更何況,這裏的答案將支持更新的設備(例如,當視網膜顯示器啓動並且它仍然有效時,我沒有更改此代碼示例,圖像會顯示低分辨率結束)。 – 2013-02-18 12:10:25

回答

16

您需要設置UINavigationItem對象的自定義堆棧,並推動他們到UINavigationBar的。這是我知道得到一個真正的後退按鈕的唯一途徑。我還沒有測試此代碼,但你應該做這樣的事情:

UINavigationItem *previousItem = 
    [[[UINavigationItem alloc] initWithTitle:@"Back title"] autorelease]; 

UINavigationItem *currentItem = 
    [[[UINavigationItem alloc] initWithTitle:@"Main Title"] autorelease]; 

[navigationBar setItems:[NSArray arrayWithObjects:previousItem, currentItem, nil] 
       animated:YES]; 

要處理時,按下按鈕,你應該爲自己設定爲導航欄的委託,實施UINavigationBarDelegate代表。

+0

FYI:設置由navigationController管理的的導航欄的代表提出了一個例外:`***終止應用程序由於未捕獲的異常「NSInternalInconsistencyException」,原因:「不能手動設置委託由一個controller.'` – stigi 2013-03-25 11:18:48

+0

管理的UINavigationBar的什麼是currentItem? – scientiffic 2014-08-29 02:46:09

1

您還可以通過以前的視圖控制器(而不是當前觀看的一個)上修改backBarButtonItem更新此。