选项卡栏导致导航控制器栏按钮项customView消失



我在选项卡栏控制器中嵌入了两个导航控制器。这两个导航控制器都有一个视图控制器。这两个视图控制器都有一个右栏按钮项,并且这两个栏按钮项已使用静态var sharedView设置为customView,这符合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)
}
}

故事板结构

它现在的行为(gif(

感谢您的意见。

最后,我找到了一种绕过这个问题的方法,在每个VC中用单独的变量替换静态var。然而,仍然不知道为什么使用静态var会导致这种现象。我已经就这个问题向苹果公司提交了一份报告。

相关内容

  • 没有找到相关文章

最新更新