13

我在我的应用程序中使用故事板,如果我设置 ViewController 类的 title 属性,当我按下 SecondViewController 时,该字符串将显示为我的后退按钮的文本,我该如何更改?,我想放一个不同的返回按钮的标题。

我用过这个,但它不起作用:

UIBarButtonItem *btnBack = [[UIBarButtonItem alloc]
                                   initWithTitle:@"Back" 
                                   style:UIBarButtonItemStyleBordered
                                   target:self
                                   action:nil];
    [self.navigationItem setBackBarButtonItem: btnBack];

请帮我

4

5 回答 5

49

尝试这个 ,

目标-C:

UIBarButtonItem *btnBack = [[UIBarButtonItem alloc]
                            initWithTitle:@"Done"
                            style:UIBarButtonItemStyleBordered
                            target:self
                            action:nil];
self.navigationController.navigationBar.topItem.backBarButtonItem=btnBack;

迅速:

var btn = UIBarButtonItem(title: "Done", style: .Plain, target: self, action: "backBtnClicked")

self.navigationController?.navigationBar.topItem?.backBarButtonItem=btn
于 2013-07-01T11:40:10.543 回答
12

当您使用 Storyboards 时,您可以更改左侧栏按钮项的文本,即后退按钮,无需代码。您显然需要UINavigationController在 Storyboard 中添加一个,以便您能够推送和弹出视图。

  1. 选择源视图控制器的导航项对象
  2. 在右侧检查器视图的“后退按钮”选项中输入文本。

然后,当从这个视图推送一个视图时,它将使用这个标题集。

在此处输入图像描述

于 2014-08-25T11:51:39.030 回答
1

将 backBarButtonItem 设置为前一个 viewController 的 navigationItem。设置 topItem 仅适用于第一次 viewWillAppear。详情请查看这篇文章:iOS设置导航栏后退按钮标题

NSArray *viewControllerArray = [self.navigationController viewControllers];
// get index of the previous ViewContoller
long previousIndex = [viewControllerArray indexOfObject:self] - 1;
if (previousIndex >= 0) {
    UIViewController *previous = [viewControllerArray objectAtIndex:previousIndex];
    previous.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]
                                                     initWithTitle:backButtonTitle
                                                     style:UIBarButtonItemStylePlain
                                                     target:self
                                                     action:nil];
}
于 2014-09-05T06:46:22.657 回答
0

尝试更改推送第二个视图控制器的第一个视图控制器的标题,并在弹出时将标题设置为旧的。

于 2013-07-01T11:35:24.837 回答
-2

尝试这个:

    UIBarButtonItem *btnBack = [[UIBarButtonItem alloc]
                                       initWithTitle:@"Back" 
                                       style:UIBarButtonItemStyleBordered
                                       target:self
                                       action:@selector(backButtonClicked:)];
        [self.navigationItem setLeftBarButtonItem: btnBack];


   -(void)backButtonClicked:(UIBarButtonItem*)sender
     {
        //do ur stuff
     }
于 2013-07-01T11:39:18.600 回答