Swift 隐藏后退按钮无法显示

Swift can't show back button after hiding it

我有一个带有静态单元格的 UITableViewController,它有一个自定义后退按钮。我使用代码隐藏了 viewDidLoad 中的后退按钮:

var cancelBtn = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "closeSettings")
self.navigationItem.hidesBackButton = true
self.navigationItem.leftBarButtonItem = cancelBtn

如果我没有 self.navigationItem.hidesBackButton = true 行,后退按钮箭头仍然会出现。通过代码中的那一行,后退按钮被隐藏,取消按钮完全按照我想要的方式显示。当我从一个单元格打开另一个视图控制器时,问题就来了,后退按钮不存在。我在单击单元格时实例化视图控制器,并使用导航控制器推送视图控制器。我试图把

self.navigationItem.hidesBackButton = false

在 pushViewController() 之前的代码中。当我这样做时,我看到后退按钮出现,但是当新的视图控制器被推到导航控制器上时,后退按钮消失了。

我什至尝试将 hidesBackButton = false 行放在目标视图控制器的 viewDidLoad 和 viewDidAppear 中,但我无法让后退按钮出现。任何人都可以帮助引导我朝着正确的方向前进,以解决我可能做错的事情吗?

您是否尝试将 self.navigationItem.hidesBackButton = false 设置为 viewWillDisappear()

试试这个设置

self.navigationItem.hidesBackButton = false

在 ViewWillAppear 部分的目标视图控制器上。