【问题标题】:backBarButtonItem gets renamed in iOS 7 when there is a long title当标题很长时,backBarButtonItem 在 iOS 7 中被重命名
【发布时间】:2013-10-07 21:58:15
【问题描述】:

我在 iOS 7 中观察到的一个行为是,如果当前显示的视图控制器的标题太长,UINavigationItembackBarButtonItem 的标题会被重命名。懒得解释,放几张照片:

如您所见,当标题过长时,后退按钮会被重命名为“后退”,而不管之前是什么。如果标题更长,后退按钮不会显示任何文字,只显示左箭头图像。

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

编辑

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

【问题讨论】:

    标签: uiviewcontroller uinavigationcontroller ios7 uinavigationitem backbarbuttonitem


    【解决方案1】:

    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; 
    

    【讨论】:

    • 感谢您的评论,但我在问题的编辑部分发布的解决方案比这个更干净。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 2014-03-28
    相关资源
    最近更新 更多