【问题标题】:iOS 7 UINavigationBar has hidden back buttoniOS 7 UINavigationBar 隐藏了后退按钮
【发布时间】:2013-11-06 16:31:03
【问题描述】:

我有一个应用程序,它的 UINavigationBars 中有一个带有自定义图像的后退按钮。在 iOS 6 中一切都很好,但在 iOS 7 中,按钮大部分时间都是“不可见的”。

当我将新的视图控制器推入 UINavigationController 时,新屏幕不会出现后退按钮,但如果我触摸按钮应该在的位置,它会淡入。

如果我在没有动画的导航控制器上设置了两个视图控制器,则按钮显示正常,但不会出现在后续推送中。

我很确定我的代码中没有任何内容故意隐藏后退按钮并更改 UINavigationBar 上可用的各种颜色没有任何区别。

【问题讨论】:

  • 我很确定您已经在您使用过的代码、xib 或情节提要的视图中添加了一个UINavigationItem :)

标签: ios uinavigationcontroller ios7 uinavigationbar back


【解决方案1】:

这可能是由于您必须实现 iOS 7 中引入的两个新 UINavigationBar 属性:

self.navigationController.navigationBar.backIndicatorImage = [UIImage customImage]; self.navigationController.navigationBar.backIndicatorTransitionMaskImage = [UIImage customImage];

来自iOS 7 Transition Guidelines

“如果您想使用自定义图像来替换默认的人字形,您还需要创建自定义蒙版图像。iOS 7 使用蒙版使上一个屏幕的标题出现或消失在人字形中在导航转换期间。要了解控制后退按钮和遮罩图像的属性,请参阅 UINavigationBar 类参考。"

【讨论】:

  • 成功了!我正在这样做: UIImage* image = [UIImage imageNamed:@"back_button"]; UIImage* backButtonImage = [图像 resizableImageWithCapInsets:UIEdgeInsetsMake(image.size.height, image.size.width, 0, 0)]; [[UIBarButtonItem 外观] setBackButtonBackgroundImage: backButtonImage forState: UIControlStateNormal barMetrics: UIBarMetricsDefault];并需要将其更改为: UIImage* image = [UIImage imageNamed:@"back_button"]; [[UINavigationBar 外观] setBackIndicatorImage:image]; [[UINavigationBar 外观] setBackIndicatorTransitionMaskImage:image];
  • 在尝试将样式应用于 UIBarButtonItems 时,我的应用程序使用的 NUI 库导致了一些额外的问题。删除 BarButton 样式肯定有帮助!
  • 太棒了!很高兴答案有所帮助。
猜你喜欢
  • 2014-09-19
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 2014-11-17
  • 2015-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多