【问题标题】:Removing back button text and centered text删除后退按钮文本和居中文本
【发布时间】:2015-11-05 17:32:59
【问题描述】:

我在 App Delegate 中使用了一个 hack,它从导航栏的后退按钮中删除了所有文本。

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-1000, -1000) forBarMetrics:UIBarMetricsDefault];

它只是将后退按钮文本移出屏幕。所以而不是:

| < PREVIOUS SCREEN   NEW   |

它应该得到

| <          NEW            |

但是我得到了

| <                   NEW   |

这是因为 new 左侧的空间被一个“幻像”PREVIOUS SCREEN 占用......它用尽了空间,但实际上并没有显示它。

有什么方法可以避免这个问题,并且会影响整个应用程序吗?

【问题讨论】:

  • 推动导航栏标题的新偏移量?

标签: ios objective-c uinavigationbar uibarbuttonitem uinavigationitem


【解决方案1】:

我通常也会减小文本大小:

NSDictionary *textAttributes = @{NSFontAttributeName : [UIFont systemFontOfSize:1.0] };

[[UIBarButtonItem appearance] setTitleTextAttributes:textAttributes forState:UIControlStateNormal];
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -100.f) forBarMetrics:UIBarMetricsDefault];

编辑

如果您使用情节提要,您可以将 NavigationItem 的 Back Button 属性设置为 @" "(注意空格)。 Kinda 似乎可以工作(在 iOS9 上快速测试)。

【讨论】:

  • 我想过这样做,但它也减少了所有其他 UIBarButtonItem 的大小.. 例如右侧的完成按钮
  • 很遗憾,我没有使用故事板