有没有官方方式如何设置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) }
然而,这将不具有前导三角形指示器的后条按钮样式.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。