首页 文章

如何更改后退按钮上的文本

提问于
浏览
89

默认情况下,后退按钮使用视图控件的 Headers 作为文本 . 我可以在不更改视图控制器 Headers 的情况下更改后退按钮上的文本吗?我需要这个,因为我有一个视图控制器, Headers 太长,无法显示,在这种情况下,我想只显示“后退”作为后退按钮的 Headers .

我尝试了以下哪些不起作用:

self.navigationItem.leftBarButtonItem.title = @"Back";

谢谢 .

19 回答

  • 167

    尝试

    self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];
    

    我发现通过查看Apple的文档中的backBarButtonItem docs为UINavigationItem .

  • 0

    一旦我找出应用它的控制器,Marc W的方法就很有效:一个被重新命名,而不是顶部的控制器 . 所以如果这是导航堆栈:

    (bottom)  ControllerA -> ControllerB  (top)
    

    ...并且您希望在 ControllerB is on top 时显示的后退按钮中为ControllerA提供较短的 Headers ,您将属性更改应用于 ControllerA .

    所以它更多地出现在 self.title 的上下文中,而不像其他左/右键按钮设置器 .

  • -1

    你可以在故事板中完成 . 找到要返回的视图控制器(具有长 Headers 的视图控制器),选择它的导航项,然后打开属性检查器(Alt Cmd 4),插入自定义后退按钮 Headers .

    enter image description here

  • 1

    谢谢Marco ...帮助了我......

    这就是我做的 .

    如果您使用tableView导航到不同的视图...放置代码:

    self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];
    

    在第一个控制器的 didSelectRowAtIndexPath 方法......控制器A.

    导航到控制器B时,按钮的 Headers 为“返回” .

  • 1

    The back button pulls its text from the title of the parent view controller.

    在父视图控制器(点击后退按钮时显示的视图控制器)中,将其自己的 Headers 设置为后退按钮上的所需文本 .

    例如,假设我们有一个 RootViewController 类 . 当我们在其表视图中单击一个单元格时,我们将推送 SecondViewController 的实例 . 我们希望 SecondViewController 实例的后退按钮读取,"Home."

    在RootViewController.m的 viewDidLoad 方法中:

    self.title = @"Home";
    

    在SecondViewController.m的 viewDidLoad 方法中:

    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
    self.navigationItem.backBarButtonItem = backButton;
    [backButton release];
    

    如果要读取后退按钮,"Back,"将父视图控制器的 Headers 设置为 @"Back" ;

  • 0

    这项工作对我来说更好 . 试试:

    self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] 
    initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
    
  • 0

    如果您使用的是故事板:

    • 打开StoryBoard

    • 在“文档大纲”窗口中,找到要返回的ViewController

    • 单击该ViewController的导航项

    • 在“属性”资源管理器中,将“后退”按钮值更改为自定义磁贴

    就是这样,享受......

  • 9

    在MonoTouch中,以下工作(在父控制器的ViewDidLoad中):

    NavigationItem.BackBarButtonItem = new UIBarButtonItem( "Back", UIBarButtonItemStyle.Plain, null);
    
  • 1
    [self.navigationItem setBackBarButtonItem:[[UIBarButtonItem alloc]
      initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil]];
    

    这对我有用 .

  • 97

    在父视图控制器中,在视图加载时设置后退按钮:

    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
        // Do any additional setup after loading the view.
        self.navigationItem.backBarButtonItem = 
           [[UIBarButtonItem alloc] initWithTitle:@"title" 
                                            style:UIBarButtonItemStylePlain 
                                           target:nil 
                                           action:nil];
    
    }
    

    请注意,最后我们不需要在最新的iOS版本中包含 autorelease .

    希望这可以帮助!

  • 12

    [self.navigationController.navigationBar.backItem setTitle:@"back"];

    这个对我有用 . 您可以用其他东西替换“后退” .

  • 40

    如果你不想拥有头衔,这个适合我!

    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStylePlain target:nil action:nil];
    
  • 3
    self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
    
  • 0

    我终于知道为什么这些答案一开始对我不起作用 . 我在故事板中设置了 Headers . 当我在代码上设置 Headers 时 . 有用!

    self.navigationItem.title = @"Main Menu";
    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStyleBordered target:nil action:nil];
    [[self navigationItem] setBackBarButtonItem:backButton];
    
  • 47

    我的解决方案是在视图控制器被推送到导航堆栈时设置 Headers ,并在推送vc关闭之前使用委托方法重置它:

    因此,当我按下其他视图控制器时,我将 Headers 更改调用视图控制器:

    self.pushedVC = [self.storyboard instantiateViewControllerWithIdentifier:@"pushedVCIdentifier"];
    self.pushedVC.delegate = self;   
    [self.navigationController pushViewController:self.pushedVC animated:YES];
    self.title = @"Back";
    

    并在委托回调函数(我在viewWillDissapear中调用):

    -(void)pushedVCWillClose:(PushedVC *)sender
    {
        self.title = @"Previous Title";
    }
    
  • 3

    如果您不仅要更改“后退”按钮的文本并保持原始的左箭头形状,还要在用户单击“后退”按钮时执行某些操作,我建议您查看我的“CustomNavigationController” .

  • 0

    //您可以通过在上一个视图控制器中设置 Headers 来实现此目的,如下所示

    override func viewWillAppear(animated: Bool) {
            super.viewWillAppear(animated)
            //Set Title for this view
            self.navigationItem.title = "My Title"
    
    }
    
    override func viewWillDisappear(animated: Bool) {
            super.viewWillAppear(animated)
            //Set Title for back button in next view 
            self.navigationItem.title = "Back"
    }
    
  • 10

    要更改后退按钮 Headers ,请参阅下面的代码

    InformationVC *infoController=[[InformationVC alloc]init];[self.navigationController infoController animated:YES];
    
    //Below code changed back button title on InformationVC page.
    UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Information" style: UIBarButtonItemStylePlain target: nil action: nil];
    self.navigationItem.backBarButtonItem = backBarButton;`enter code here`
    
  • 5

    这对我有用:

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

相关问题