【问题标题】:backBarButtonItem image in iOS 8iOS 8 中的 backBarButtonItem 图像
【发布时间】:2015-07-12 05:08:44
【问题描述】:

假设我有一个指向ViewControllerBViewControllerA,我可以通过ViewControllerA中的这个在ViewControllerB中设置返回按钮的标题:

navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil)  //set title to blank
navigationController?.pushViewController(destinationVC, animated: true)

但是,如何替换图像?我试过了,但我仍然只看到默认的“后退”图像,而不是自定义图像:

navigationItem.backBarButtonItem = UIBarButtonItem(image: UIImage(named: "back-toolbar"), style: UIBarButtonItemStyle.Plain, target: nil, action: nil)

我想使用这张图片:

在阅读了许多其他 SO 帖子之后,我不想为每个目标视图(如 ViewControllerB)实现 leftButtonItem,并且必须管理后退操作和向左滑动手势。

我也无法在 AppDelegate 中设置图像,因为我将一张图像用于某些视图,而将另一张图像用于其他视图。

更新

根据@rounak 的提示,我能够设置 backBarButton,但位置似乎错误。有什么办法调整吗?

【问题讨论】:

  • 请解释您看到的实际结果以及这些结果与您想要的实际结果有何不同。 “它不起作用”不足以描述您的问题。什么是“不工作”?它会崩溃吗?它编译吗?他们是警告还是错误?它是否运行良好并且简单地显示标准外观与您的图像是什么?它会发射导弹吗?
  • 抱歉,我添加了截图。

标签: ios swift


【解决方案1】:

你可以设置backIndicatorImage:

navigationController?.navigationBar.backIndicatorImage = UIImage(named: "back")
navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "back")

这将只为该导航控制器应用指示器图像,而不是应用中的所有导航控制器。对于需要不同背景图像的视图控制器,您可以在 viewWillAppear/viewWillDisappear 中的视图控制器中更改此图像。

【讨论】:

  • 谢谢@rounak,这行得通。有没有办法调整图像大小和位置?大小和位置似乎有点偏离。 PS。在viewWillDisappear 上重置它的好技巧。
  • @Dean iOS 通常在定位后退按钮方面做得很好,但如果您觉得不满意,您可以尝试在图像上添加一点边距以将其移动到您想要的一侧。跨度>
  • 我应该创建多大的图像? iOS 似乎没有调整图像大小。
  • @Dean HIG 建议栏按钮图像为 22x22 stackoverflow.com/a/1591139/424406
  • 删除后退按钮文本怎么样?
【解决方案2】:

无需为每个视图控制器设置leftButtonItem。您可以通过UINavigationBar 的外观属性选择器替换图像,这将为整个应用程序设置默认的后退指示器图像。

这是一个 Objective-C 的例子,我相信你可以很容易地找到它的 Swift 等价物:

[[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed:@"back-toolbar.png"]];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@"back-toolbar.png"]];

【讨论】:

  • 嗨,Artal,很遗憾我做不到。我有一些视图使用一个图像作为后退按钮,而其他视图使用另一个图像。
  • @Dean 我明白了。但是,您仍然可以多次使用此方法并在显示某些视图控制器之前将图像切换到正确的图像,并在它们被关闭时将其更改回来。
  • 如果你这样做,后退按钮文本仍然会出现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-22
  • 1970-01-01
  • 2016-12-29
  • 2014-11-05
  • 1970-01-01
相关资源
最近更新 更多