当标题很长时,backBarButtonItem会在iOS 7中重命名

时间:2013-10-07 21:58:16

标签: uiviewcontroller uinavigationcontroller ios7 uinavigationitem backbarbuttonitem

我在iOS 7中观察到的一个行为是,如果当前显示的视图控制器的标题太长,则重命名backBarButtonItem的{​​{1}}的标题。太懒了解释所以这里有一些照片:

Screenshot with short title and desired back button

Long title renames back button to "Back"

正如您所看到的,当标题太长时,无论以前是什么,后退按钮都会重命名为“后退”。如果标题更长,则后退按钮不显示任何文本,只显示左箭头图像。

有谁知道如何禁用此行为?我希望后退按钮保持我想要的状态而不是重命名。感谢

修改

我通过手动约束视图控制器标题的宽度来创建一个脏解决方案。我发现iPhone上的标题字体是 System Bold 17.0 ,所以我在设置之前检查标题的大小(通过UINavigationItem字符串方法) ,并修剪标题末尾的字符,直到大小小于导致后退按钮重命名的长度。

1 个答案:

答案 0 :(得分:3)

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;