繁体   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