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 – 如何在导航栏中禁用后退按钮全部内容,希望文章能够帮你解决ios – 如何在导航栏中禁用后退按钮所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。