2013-04-05 83 views
5

我在Storyboard項目中爲導航欄創建了一個標題,但是當我移動到下一個viewcontroller時,後退按鈕顯示與我上一個導航欄(主導航欄)標題相同的名稱。我可以設置單獨的標題和後退按鈕名稱嗎?導航欄標題和返回按鈕名稱是否相同?

我試過下面的代碼,但它不工作?爲什麼?

[email protected]"Recent Books"; 
[email protected]"Back"; 
+0

請看看我的答案 http://stackoverflow.com/questions/9871578/how-to-change-the-uinavigationcontroller-back-按鈕名稱/ 9871775#9871775 – Tendulkar 2013-04-05 09:29:10

+0

該答案對我而言不起作用 – Naveen 2013-04-05 09:56:29

回答

19

根據UINavigationItem Class Reference

「當該導航產品立即在 堆棧頂部項目下方,導航控制器導出用於從該導航項目的 導航欄的返回按鈕。[ ...]如果您想爲後退按鈕指定 自定義圖片或標題,則可以將 酒吧按鈕項目(包含您的自定義標題或圖像)分配給此屬性 。

所以,從那裏你正在推動其他VC

[email protected]"Recent Books"; 
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] 
            initWithTitle:@"Back" 
            style:UIBarButtonItemStylePlain 
            target:nil 
            action:nil]; 
self.navigationItem.backBarButtonItem=backButton; 
+0

@Bhargavi ...非技術性錯誤..現在確定 – Naveen 2013-04-05 10:06:59

+0

我有兩個BarButton定製在我的第一個視圖上,左邊是「Information」,右邊是「設置」。然而,我必須在第一個視圖中爲BackButton設置一個名稱。在我的組件樹中,現在有三個BarButton,但是當我運行應用程序時,一切正常。簡直沒有道理。 – 2015-05-25 13:02:51

2

試試這個在您的第一個VC下面應該解決您的問題

-(void)viewDidAppear:(BOOL)animated 
{ 
    self.navigationController.navigationBar.backItem.title = @"back"; 
} 

您也可以使用這個Objective-C的語法

[[self.navigationController.navigationBar backItem] setTitle:@"back"]; 
6

假設您正在推動您的viewcontro米勒甲 - >乙

在視圖 - 控制一個嘗試viewDidLoad方法添加該代碼

UIBarButtonItem *btn_Back = [[UIBarButtonItem alloc] initWithTitle:@"Back" 
style:UIBarButtonItemStylePlain target:nil action:nil]; 
self.navigationItem.backBarButtonItem=btn_Back; 

所以,你會看到在視圖控制器B您的「返回」按鈕

1

只管去做這樣,一個最簡單的方法我也發現到現在:

創建自定義後退按鈕,並將其添加到導航欄左鍵項目屬性:

- (void)viewDidLoad 
{ 
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
UIImage *backBtnImage = [UIImage imageNamed:@"Backnavigation.png"] ; // Here set the back button image 
[backBtn setBackgroundImage:backBtnImage forState:UIControlStateNormal]; 
[backBtn addTarget:self action:@selector(handleBack:) forControlEvents:UIControlEventTouchUpInside]; 
backBtn.frame = CGRectMake(0, 0, 24, 24); 
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:backBtn] ; 
self.navigationItem.leftBarButtonItem = backButton; 
} 


//Handle the Back Button Event 
- (void) handleBack:(id)sender 
{ 
    // do your custom handler code here 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

另外,通過這種方式,您不需要每次更改NavigationBar的標題。

這是給你參考的後退按鈕: enter image description here