在ios中设置后栏按钮项的标题

时间:2013-07-01 11:32:45

标签: iphone ios backbarbuttonitem

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

我已经使用了它,但它不起作用:

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

请帮帮我

5 个答案:

答案 0 :(得分:48)

试试这个,

目标-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

答案 1 :(得分:12)

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

  1. 选择源视图控制器的导航项对象
  2. 在右侧检查器视图的“后退按钮”选项中输入文本。
  3. 然后,当从该视图推送视图时,它将使用此标题集。

    enter image description here

答案 2 :(得分:1)

将backBarButtonItem设置为上一个viewController的navigationItem。设置topItem仅适用于第一次viewWillAppear。请查看此帖子了解详情:iOS Set Navigation Bar Back Button Title

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];
}

答案 3 :(得分:0)

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

答案 4 :(得分:-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
     }