如何解决标签栏导致导航控制器栏按钮项customView消失
我在标签栏控制器中嵌入了两个导航控制器。这两个导航控制器都有一个视图控制器。这两个视图控制器都有一个右栏按钮项,并且这两个栏按钮项已设置为customView并带有一个静态var sharedView,它与UIView继承一致。 sharedView已设置为黄色。
我希望两个条形按钮项始终显示黄色。但是,当在两个选项卡之间切换时,导航栏按钮项将在每四个开关中消失一次。
我制作了一个示例项目来复制此问题:https://github.com/lenameow/TestCustomView
相关代码:
导入基金会 导入UIKit
class SharedView: UIView {
static var sharedView = SharedView(frame: CGRect(x: 0,y: 0,width: 25,height: 25))
func setupUI(button: UIBarButtonItem) {
SharedView.sharedView.backgroundColor = UIColor.yellow
button.customView = SharedView.sharedView
}
}
class ViewController: UIViewController {
@IBOutlet weak var testBarButton: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
SharedView.sharedView.setupUI(button: testBarButton)
}
}
class SecondViewController: UIViewController {
@IBOutlet weak var testBarButton: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
SharedView.sharedView.setupUI(button: testBarButton)
}
}
感谢任何输入。
解决方法
最后,我找到了一种通过在每个VC中用单独的变量替换静态var来绕过此问题的方法。但是,仍然未知为什么使用静态变量会导致这种现象。我已经向苹果提交了有关此问题的报告。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。