iOS >> UINavigation项目后退按钮标题不会更改

Oha*_*gev 10 back-button uinavigationitem ios

我正在尝试为UINavigationController堆栈中的推送VC集设置BACK按钮.我使用以下代码,但它不起作用 - 我仍然将之前的VC名称显示为后退按钮标题.

-(void)viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

    self.title = @"VC Title";

    UIBarButtonItem* myBackButton = [[UIBarButtonItem alloc]
                                     initWithTitle:@"Back"
                                     style:UIBarButtonItemStyleBordered
                                     target:nil
                                     action:nil];

    self.navigationItem.backBarButtonItem = myBackButton;

}
Run Code Online (Sandbox Code Playgroud)

任何人?

Mic*_*mny 17

在父视图控制器中:

- (void)viewWillDisappear:(BOOL)animated
{
    self.title = @"Back";
}

- (void)viewWillAppear:(BOOL)animated
{
    self.title = @"Title of your navigation bar";
}
Run Code Online (Sandbox Code Playgroud)

会做的伎俩


chr*_*s13 16

尝试在父视图控制器中设置标题 viewDidLoad

UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(popView)];

self.navigationItem.leftBarButtonItem = customBarItem;
Run Code Online (Sandbox Code Playgroud)

  • 谢谢chris13.这样做了.奇怪的是,self.navigationItem与下一个VC有关,而不是与当前活动的VC有关...任何想法为什么或者你有一个关于它的良好解释的链接? (3认同)

joh*_*nyu 12

来自Apple的文档:

导航栏左侧的条形按钮项允许导航回导航堆栈上的上一个视图控制器.导航控制器更新导航栏的左侧,如下所示:

如果新的顶级视图控制器具有自定义左栏按钮项,则显示该项.要指定自定义左栏按钮项,请设置视图控制器导航项的leftBarButtonItem属性.

如果顶级视图控制器没有自定义左栏按钮项,但前一个视图控制器的导航项在其backBarButtonItem属性中具有有效项,则导航栏将显示该项.

如果任一视图控制器未指定自定义栏按钮项,则使用默认后退按钮,并将其标题设置为上一个视图控制器的title属性的值 - 即,视图控制器向下一级堆栈.(如果导航堆栈上只有一个视图控制器,则不显示后退按钮.)

希望这可以帮助.