【问题标题】:Change the title of backbutton in NavigationBar更改导航栏中后退按钮的标题
【发布时间】:2014-04-30 15:55:52
【问题描述】:

按照这个问题的许多重复示例,我似乎无法正确回答。

我有一个 UINavigationViewController,它有一个 LoginViewController 作为 rootViewController。在这里,我得到了一个带有 segue(推送)到 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);
}

【问题讨论】:

    标签: ios iphone cocoa-touch storyboard


    【解决方案1】:

    您需要设置您要返回的控制器的backBarButtonItem,而不是您推送的控制器。将您的代码移至LoginViewController viewDidLoad 方法。

    导航控制器从堆栈中前一个控制器的backBarButtonItem 派生导航栏的后退按钮。如果 item 为 nil,它将使用相同的 title 属性中的值。如果标题太长而无法容纳,导航栏可能会用字符串“Back”代替标题。 如果您的控制器有自定义左栏按钮项,导航栏将忽略 backButtonItem 属性和显示自定义按钮的标题。

    【讨论】:

      【解决方案2】:

      在 BEFORE 视图上设置后退按钮的标题。因此,如果您从LoginViewController 转接,则在转接至LoginInfoViewController 之前将项目上的后退按钮标题设置为

      例子:

      LoginViewController 上的viewDidLoad 方法中:

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

      这意味着您将按钮设置在LoginViewController,而不是LoginInfoViewController

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-21
        • 2019-01-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多