UIToolBar 设置从其他 viewControllers 启用

UIToolBar setting isEnabled from other viewControllers

我已经将工具栏嵌入到几个视图控制器中,如下所示。我希望能够在任何控制器的栏按钮项上设置 isEnabled 属性 - 例如,让我们按下一个按钮。我很确定我需要对工具栏视图控制器的引用,或者工具栏本身?我有点困惑...

我希望它是这样的:

@IBAction func buttonPressed(_ sender: UIButton) {
   let vc = ToolbarViewController()
   vc.settingsButton.isEnabled = false
}

但后来我崩溃了,因为 vc.settingsButton 为零。

ToolbarViewController 将是当前视图控制器的第一个子视图控制器。
如果您将按钮方法更改为:

@IBAction func buttonPressed(_ sender: UIButton) {
    let vc = childViewControllers?.first as? ToolbarViewController
    vc?.settingsButton.isEnabled = false
}

它应该可以工作,但是我鼓励您查看 UITabViewController 的文档,因为这是执行此操作的正常方法。