簡體   English   中英

在NavigationBar中更改后退按鈕的標題

[英]Change the title of backbutton in NavigationBar

按照這個問題的許多重復的例子,我似乎無法做到正確。

我有一個UINavigationViewController,它有一個LoginViewController作為rootViewController。 在這里,我得到一個帶有segue(push)的按鈕到LoginInfoViewController。

在LoginInfoViewController.m中:

- (void)viewDidLoad
{
    [super viewDidLoad];

    //null
    NSLog(@"%@", self.navigationItem.backBarButtonItem);

    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Test"
                                                                   style:UIBarButtonItemStyleDone
                                                                  target:nil
                                                                  action:nil];
    self.navigationItem.backBarButtonItem = backButton;

    //not null, still the back button says: "Back"
    NSLog(@"%@", self.navigationItem.backBarButtonItem);
}

在此輸入圖像描述

在BEFORE上設置后視圖的標題。 因此,如果您從LoginViewController ,則在切換到LoginInfoViewController之前在項目上設置后退按鈕標題

例:

LoginViewController上的viewDidLoad方法中:

UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"Go back" style: UIBarButtonItemStyleBordered target: nil action: nil];
[[self navigationItem] setBackBarButtonItem: newBackButton];

這意味着您要在LoginViewController上設置按鈕,而不是在LoginInfoViewController上設置按鈕。

您需要設置要返回的控制器的backBarButtonItem ,而不是您推送的控制器。 將代碼移動到LoginViewController viewDidLoad方法。

導航控制器從backBarButtonItem中前一個控制器的backBarButtonItem派生導航欄的后退按鈕。 如果該項為nil,則它將使用title屬性中的值。 如果標題太長而不適合,導航欄可以替換字符串“Back”代替標題。 如果您的控制器有一個自定義左欄按鈕項,導航欄將忽略backButtonItem屬性和標題,而是顯示自定義按鈕。

暫無
暫無

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

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