ios – 如何在导航栏中禁用后退按钮

前端之家收集整理的这篇文章主要介绍了ios – 如何在导航栏中禁用后退按钮前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有官方方式如何设置UIBarButtonItem.enabled属性?我试图在前一个控制器中设置一个backButtonItem.但是,启用的属性将被忽略.

更多在这个简单的example project.

我不想要一些解决方案,如“make your own leftBarButtonItem and set its alpha …”

编辑:我不想隐藏它,只能使用变暗的颜色禁用它,并禁用用户交互.它与禁用的leftBarButtonItem完全相同.

解决方法

截至今天,无法使用enabled属性禁用后退按钮.除非创建自定义项目,否则backBarButtonItem属性将为零,即使这样,它也将忽略enabled属性.有一对(不满意)的方式.

隐藏按钮

这是苹果希望你做的,因为他们忽略了启用的属性.就像这样简单

navigationItem.hidesBackButton = true

并且应该是首选方法,除非你有很好的理由.

禁用和着色导航栏

您可以在整个导航栏上禁用用户交互,并使其变暗使后退按钮显示为禁用.

navigationController?.navigationBar.userInteractionEnabled = false
navigationController?.navigationBar.tintColor = UIColor.lightGrayColor()

不幸的是,这样做也会影响导航栏中的其他元素,因此,如果您在右侧有另一个按钮项,则可能不是一个选项.

使用自定义左栏按钮项

leftBarButtonItem不会忽略启用的属性,因此您可以创建自定义项目,并在激活时手动触发该弹出窗口.

navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back",style: .Plain,target: self,action: "backButtonTapped")
...
navigationItem.leftBarButtonItem?.enabled = false

func backButtonTapped() {
    self.navigationController?.popViewControllerAnimated(true)
}

然而,这将不具有前导三角形指示器的后条按钮样式.

猜你在找的iOS相关文章