2

按鈕添加自定義回導航欄只是想確認一下,因爲我想單獨學習的MonoTouch ..使用MonoTouch的

我有我瀏覽到使用NavigationController.PushViewToController()的圖。在目標視圖中,我有一個導航欄。我可以添加一個按鈕到欄中並使用代碼推送到另一個視圖(我碰巧知道Back在哪裏),沒問題。

是否有現有的「後退按鈕」控件?或者通過代碼來改變現有的後退按鈕來說「回去」?

在Interface Builder中,我可以看到navigationItem上有一個名爲「Back」的屬性。當我添加文本到這個我可以看到一個新的BarButtonItem添加到navigationBar。但是,當我導航到模擬器中的視圖時,我從來沒有看到這個按鈕。如果我嘗試手動將項目拖動到視圖上,則「後退」文本將被清除,並且該按鈕將被視爲自定義按鈕。

我是否必須手動編寫後退按鈕?

回答

10

默認後退按鈕(取前一個控制器的名稱)不能自定義。但你可以隱藏它,並用新的按鈕替換該按鈕。

如果你有一個控制器,你可以在viewDidLoad方法上做到這一點。重寫此方法,您確定所有元素都已設置。

// allows you to hide the back button 
NavigationItem.SetHidesBackButton(true,true); 

// allows you to create a new customized button 
NavigationItem.LeftBarButtonItem = new UIBarButtonItem(...); 

UIBarButtonItem需要一個您可以用來控制導航的處理程序。

在處理程序中,你可以這樣做:

NavigationController. PopViewControllerAnimated(true); 
+0

我的問題是,默認的按鈕並未顯示。 – Kye

+2

當您只將一個控制器推到導航堆棧上時,後退按鈕不會出現。當您將另一個控制器放在前一個控制器上時,會出現默認後退按鈕。查看此鏈接以獲取更多信息:[uinavigationcontroller-by-example](http://www.shrinkrays.net/articles/monotouch-controllers-by-example/uinavigationcontroller-by-example.aspx) –

+0

@Flex_Addicted - 信息,似乎沒有記錄在任何地方,非常感謝。 – tomfanning