我注意到我的一个视图控制器发生了一些奇怪的事情:后退按钮消失了,但是可以通过点击左上角(即按钮所在的位置)返回到前一个视图控制器。
在我的整个文件中,没有将self.navigationItem.hidesBackButton设置为YES的行;同样,NSLog在viewDidLoad中将self_navigationItem.hidesBackButton的值打印为0。
这在模拟器和真实设备中都会发生。有什么想法吗?
答案 0 :(得分:23)
删除此行可解决问题。
答案 1 :(得分:0)
我有一个递归导航控制器,这也发生在我身上,我用这段代码来解决它:
self.navigationItem.leftItemsSupplementBackButton = true
答案 2 :(得分:0)
以防万一有人使用自定义后退按钮遇到此问题并且上述修复程序不起作用,这里有一个类似的问题,我遇到了不同的解决方案。
我有一个自定义的后退按钮,当可以看到箭头时,文本会消失UINavigationController custom back button disappears from NavigationBar
因此,如果有人遇到类似情况,自定义后退按钮上的后退按钮文本消失,这是我的方案和解决方法。
我在自定义 NavigationController 类中自定义了后退按钮,如下所示:
private func customizeBackButton() {
let backImage = UIImage(named: "BackButton")?.withRenderingMode(.alwaysOriginal)
navigationBar.backIndicatorImage = backImage
navigationBar.backIndicatorTransitionMaskImage = backImage
UIBarButtonItem.appearance().setTitleTextAttributes([
NSAttributedString.Key.foregroundColor: UIColor.panoStoryYellow,
NSAttributedString.Key.font: UIFont(name: "Montserrat-SemiBold", size: 15)!
], for: .normal)
}
这给了我:
我确保我遵循了上述所有答案,例如设置标题以确保色调颜色有效等。但是这不起作用。
就我而言,我甚至需要为后退按钮的 highlighted
状态设置属性,如下所示:
UIBarButtonItem.appearance().setTitleTextAttributes([
NSAttributedString.Key.foregroundColor: UIColor.panoStoryYellow,
NSAttributedString.Key.font: UIFont(name: "Montserrat-SemiBold", size: 15)!
], for: .highlighted)
此后,后退按钮的文字再也没有消失