gpt4 book ai didi

ios - 如何禁用导航栏中的后退按钮

转载 作者:行者123 更新时间:2023-11-30 11:44:16 25 4
gpt4 key购买 nike

是否有任何官方方法可以设置 UIBarButtonItem.enabled 属性?我尝试在以前的 Controller 中设置 backButtonItem 。但 enabled 属性被忽略。

更多内容尽在这个简单的example project .

我不想要像“制作你自己的 leftBarButtonItem 并设置其 alpha ...”之类的解决方案

编辑:我不想隐藏它,只能通过变暗的颜色和禁用的用户交互来禁用它。这与禁用 leftBarButtonItem 的行为完全相同。

最佳答案

截至目前,无法使用 enabled 属性禁用后退按钮。除非您创建自定义项,否则 backBarButtonItem 属性将为 nil,即使如此,它也会忽略 enabled 属性。有几种(不令人满意的)方法可以解决这个问题。

隐藏按钮

这正是 Apple 希望您执行的操作,因为他们忽略了 enabled 属性。就这么简单

navigationItem.hidesBackButton = true  

除非您有充分的理由,否则应该是首选方法。

禁用导航栏并为其着色

您可以在整个导航栏上禁用用户交互,并将其着色以使后退按钮显示为禁用状态。

navigationController?.navigationBar.isUserInteractionEnabled = false
navigationController?.navigationBar.tintColor = UIColor.lightGray

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

使用自定义左栏按钮项目

leftBarButtonItem 不会忽略 enabled 属性,因此您可以创建自定义项目并在激活时手动触发弹出。

navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(ThisClass.backButtonTapped))
...
navigationItem.leftBarButtonItem?.isEnabled = false

func backButtonTapped() {
self.navigationController?.popViewController(animated: true)
}

但是,这不会具有带有前导三角形指示器的后栏按钮样式。

关于ios - 如何禁用导航栏中的后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49025325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com