当前左边栏按钮的默认值是加载当前视图的视图的标题,换句话说,当按下按钮(后退按钮)时显示的视图。

我想把按钮上显示的文本更改为其他内容。

我试着把下面这行代码放在视图控制器的viewDidLoad方法中,但它似乎不起作用。

self.navigationItem.leftBarButtonItem.title = @"Log Out";

我该怎么办?

谢谢。


当前回答

迅速:

    // Rename back button
    let backButton = UIBarButtonItem(
        title: "Back",
        style: UIBarButtonItemStyle.Plain, // Note: .Bordered is deprecated
        target: nil,
        action: nil
    )
    self.navigationController!.navigationBar.topItem!.backBarButtonItem = backButton

其他回答

使用下面的代码行:

UIBarButtonItem *newBackButton =
[[UIBarButtonItem alloc] initWithTitle:@"hello"
                                 style:UIBarButtonItemStylePlain
                                target:nil
                                action:nil];

self.navigationItem.leftBarButtonItems =[[NSArray alloc] initWithObjects:newBackButton, nil];

self.navigationItem.leftItemsSupplementBackButton = YES;
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] 
                                              initWithTitle:@"Log out" 
                                              style:UIBarButtonItemStyleDone 
                                              target:nil 
                                              action:nil] autorelease];

你可以把它放在父控制器代码中的任何你喜欢的地方,这允许你为不同的子视图有不同的后退按钮。

这应该放在调用名为NewTitle的ViewController的方法中。 就在push或popViewController语句之前。

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

在《ChildVC》中,这对我来说很管用……

self.navigationController.navigationBar.topItem.title = @"Back";

也适用于Swift !

self.navigationController!.navigationBar.topItem!.title = "Back"

好的。我个人讨厌所有这些选择。因此我想出了我自己的。

根据我所看到的信息。看起来Previous视图控制器控制着它自己的“Back”按钮,该按钮将显示在被推的视图控制器上。

我已经为控制器上想要更改Back Button的navigationItem创建了一个Lazy Load方法。

我的是一个邀请买家控制器

邀请买家是默认设置的文本。

但后退按钮需要是“邀请”

下面是我用来创建后退按钮的代码。

我把这段代码放在Controller's Implementatio (.m)文件的顶部,它会自动覆盖super的方法。

- (UINavigationItem *)navigationItem{
    UINavigationItem *item = [super navigationItem];
    if (item != nil && item.backBarButtonItem == nil)
    {
        item.backBarButtonItem = [[[UIBarButtonItem alloc] init] autorelease];
        item.backBarButtonItem.title = @"Invite";
    }

    return item;
}

我觉得这是一种更优雅的方式。

我把这些代码放在一个地方,在需要时自动填充。

不需要在每个推送请求之前调用代码。

希望这能有所帮助