在我的应用程序中,我需要将以前的viewController标题显示给当前的viewController后标题。
它在iOS6中完美运行。
在iOS7中,自动显示“后退”标题,而不是之前的viewController标题。
如何解决iOS7中的问题?
答案 0 :(得分: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];
}
现在,当下一个视图控制器被推到它上面时,后退按钮将是你在backBarButtonItem中放置的任何标题。
答案 1 :(得分:11)
由于声誉不佳,我无法添加评论,因此我发布了答案,而这实际上并不是答案。
但是,
self.navigationController.navigationBar.topItem.title = @"";
写在其中一个答案中,相当于:
self.title = @"";
答案 2 :(得分:6)
试试这个,
self.navigationController.navigationBar.topItem.title = @"";
答案 3 :(得分:4)
iOS 7会自动将后退按钮标题替换为“后退”,甚至完全删除标题以适合当前导航项目的标题。你可能不应该尝试做任何事情,除非尝试缩短你的标题。
如果您想制作简短的标题,可以按照以下方式进行操作
self.title = @"SOME REALLY LONG NAVIGATION BAR TITLE";
UILabel* label=[[UILabel alloc] initWithFrame:CGRectMake(0,0, 200, 40)];
label.text=self.navigationItem.title;
label.adjustsFontSizeToFitWidth=YES;
self.navigationItem.titleView=label;