当视图标题很长时,iOS7 UINavigationBar中显示"back"文本

Ric*_*ard 8 objective-c uinavigationbar uinavigationcontroller ios7

在我的应用程序中,我需要将以前的viewController标题显示给当前的viewController后标题.

它在iOS6中完美运行.

在iOS7中,自动显示"back"标题,而不是之前的viewController标题.

如何解决iOS7中的问题?

Inf*_*mes 29

在iOS 7中,不允许将后退按钮的标题设置为长度超过11个字符.

要避免更改视图控制器的标题,但要更改后退按钮的标题,您需要执行以下操作:

在上一个视图控制器(将在其推动下一个视图控制器的控制器)中,您需要设置backBarButtonItem,如下所示:

/**
 *  Notifies the view controller that its view was added to a view hierarchy.
 *
 *  @param  animated                    If YES, the view was added to the window using an animation.
 */
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    self.title = @"My Title Can Be Long";

    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"ThisIsLimit"
                                                                             style:UIBarButtonItemStylePlain
                                                                            target:nil
                                                                            action:nil];
}
Run Code Online (Sandbox Code Playgroud)

现在,当下一个视图控制器被推到它上面时,后退按钮将是你在backBarButtonItem中放置的任何标题.

  • 你能接受答案吗?如果我老实说我想要点或其他什么,哈哈. (3认同)
  • "11个字符"的来源是什么?我的经验是它不是固定值,而是取决于导航栏中标题的长度. (2认同)

Abd*_*mer 11

由于声誉低,我无法添加评论,因此我发布了答案,而这实际上并不是答案.

但,

self.navigationController.navigationBar.topItem.title = @"";
Run Code Online (Sandbox Code Playgroud)

在其中一个答案中写的,相当于:

self.title = @"";
Run Code Online (Sandbox Code Playgroud)


小智 6

试试这个,

self.navigationController.navigationBar.topItem.title = @"";
Run Code Online (Sandbox Code Playgroud)