簡體   English   中英

導航欄標題和后退按鈕名稱是否相同?

[英]Navigationbar title and back button name are same?

我在storyboard項目中為導航欄創建了一個標題,但當我移動到下一個viewcontroller時,后退按鈕顯示的名稱與我之前的導航欄(主導航欄)標題相同。 我可以設置單獨的標題和后退按鈕名稱嗎?

我嘗試了下面的代碼,但它不起作用? 為什么?

 self.navigationItem.title=@"Recent Books";
self.navigationItem.backBarButtonItem.title=@"Back";

根據UINavigationItem類參考

“當此導航項位於堆棧頂部項目的正下方時,導航控制器將從此導航項中導出導航欄的后退按鈕。[...]如果要為后退按鈕指定自定義圖像或標題,您可以將自定義欄按鈕項目(包含您的自定義標題或圖像)分配給此屬性。“

所以在你推動其他VC的第一個VC中嘗試這個

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

假設你正在推動你的viewcontroller A - > B.

在viewcontroller中嘗試在viewDidLoad方法中添加此代碼

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

因此,您將在viewcontroller B中看到“Back”按鈕

以下內容可以解決您的問題

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

您也可以使用此Objective-C語法

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

就這樣做,這是我到目前為止找到的最簡單的方法之一:

創建自定義后退按鈕並將其添加到導航欄左按鈕項屬性中:

- (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的標題。

這是后退按鈕供您參考: 在此輸入圖像描述

您可以在視圖控制器的viewWillAppear(animated:Bool)方法中使用以下代碼,您可以在其中設置您選擇的backButton標題: self.navigationController?.navigationBar.topItem?.backBarButtonItem = UIBarButtonItem(title: "Back Title", style: .plain, target: nil, action: nil)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM