【问题标题】:Restore original back button behavior恢复原始的后退按钮行为
【发布时间】:2016-11-15 11:51:44
【问题描述】:

在 UIViewController viewDidLoad 方法中,我以这种方式自定义导航左按钮的图标和行为:

let backButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.action, target:self, action:#selector(handleBack))
self.navigationItem.leftBarButtonItem = backButton

有什么办法可以恢复它原来的样子和行为?

【问题讨论】:

  • 什么意思?
  • 不,您不能这样做,您只能选择拥有与原始图像相似的自定义背景图像,并根据需要进行切换。
  • 你是指旧 iOS 版本中的那些?
  • @zombie:如您所知,您可以更改导航栏中的左侧按钮。我只是问,一旦“覆盖”原始按钮(具有“返回”功能),是否有可能恢复其行为
  • @iphonic:所以,如果你想恢复原来的行为,你所要做的就是重新定义它的图标和行为

标签: ios swift3 navigationitem


【解决方案1】:
self.navigationItem.leftBarButtonItem = nil
self.navigationItem.hidesBackButton = NO

【讨论】:

  • 这正是我想做的,但我认为还有其他方法
  • @IanBell 其良好且正确的解决方案。而且,我认为,它非常适合 EZ 解决方案 :)
【解决方案2】:

你必须这样做:

在viewDidLoad 方法中,添加:

self.navigationItem.hidesBackButton = YES;
let backButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.action, target:self, action:#selector(handleBack))
self.navigationItem.leftBarButtonItem = backButton;

要恢复,请执行以下操作:

self.navigationItem.leftBarButtonItem = nil;
self.navigationItem.hidesBackButton = NO;

【讨论】:

  • 这也是我想做的事情,但我认为还有其他方法,所以我才问
【解决方案3】:

导航栏只支持这些

我使用this 提取了 iOS 资产资产,即使我使用了提取的后退按钮,校准后退按钮看起来也很烦人,我的建议是让导航控制器通过保留后退来为您处理这个推入堆栈时出现。

【讨论】:

  • 问题并非总是如此。那就是:有时,在某些视图控制器中,您不需要后退功能。例如,当用户登录时,您希望在该位置放置一个显示其头像的图标(当您单击该头像时,您将访问用户可以编辑其个人资料的部分)等等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-09
  • 2014-05-17
  • 2015-06-16
相关资源
最近更新 更多