【问题标题】:UINavigationController Back button title always show "Back"UINavigationController 后退按钮标题总是显示“后退”
【发布时间】:2014-07-03 12:25:32
【问题描述】:

我正在开发一个IOS 应用程序。我正在使用导航控制器。如果我推到下一页,则返回按钮标题不会在 IOS 7 中显示上一页标题。返回按钮标题在 IOS 7 中始终为“返回”。我在viewWillAppearviewDidload 中设置了所有页面标题,如下所示。但它不起作用。

self.navigationItem.title=@"Previous Page Title";
self.title  = @"Previous Page Title";

在IOS 7中我可以用上一页标题设置后退按钮标题

感谢

【问题讨论】:

    标签: ios uinavigationcontroller back uinavigationitem


    【解决方案1】:

    如果标题很大,返回按钮只显示返回。试试短标题,比如

    self.title = @"Test";
    

    如果您想要长标题,请使用自定义后退按钮。

    【讨论】:

    • 非常感谢您。没关系:)
    • 如果标题太大,它只会显示后面(
    【解决方案2】:

    在 iOS 7 中,后退按钮的长度受到限制(我认为是 11 个字符)。您可以像这样设置自定义“后退按钮标题”,例如在具有长标题的视图控制器中的viewDidAppear(不是当前视图控制器!):

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

    【讨论】:

      【解决方案3】:

      如果你想强制总是有返回按钮,但仍然让系统为你创建它(将处理“返回”本地化,如果当前标题真的很长,则将按钮缩写为单个“

      self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"                                                                                               really long never shown title"
                                                                               style:UIBarButtonItemStylePlain                                                                               
                                                                              target:nil
                                                                              action:nil];
      

      【讨论】:

        【解决方案4】:

        试试这个代码:

        [[UIBarButtonItem alloc] initWithTitle:@"Your Title Here"
                                 style:UIBarButtonItemStylePlain                                                                               
                                 target:nil action:nil];
        

        或者您可以像这样为按钮设置图像:

        UIBarButtonItem *barBtn = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"arrow.png"] style:UIBarButtonItemStylePlain target:self action:@selector(back:)];
        
        self.navigationItem.leftBarButtonItem = barBtn;
        

        还有@selector方法:

        -(void)back:(id)sender{
          [self.navigationController popViewControllerAnimated:YES];
        }
        

        【讨论】: