我有一个 13 行的函数,它在我的应用程序中的每个 ViewController 中重复,整个项目总共有 690 行代码!
/// Adds Menu Button
func addMenuButton() {
let menuButton = UIButton(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
let menuImage = UIImage(named: "MenuWhite")
menuButton.setImage(menuImage, for: .normal)
menuButton.addTarget(self, action: #selector(menuTappedAction), for: .touchDown)
self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: menuButton)
}
/// Launches the MenuViewController
@objc func menuTappedAction() {
coordinator?.openMenu()
}
为了使 menuTappedAction 函数起作用,我必须像这样声明一个弱变量:
extension UIViewController {
weak var coordinator: MainCoordinator?
但是通过这样做,我得到了错误Extensions must not contain stored properties
到目前为止我尝试过的内容:
1)删除weak
关键字会导致我所有的应用程序发生冲突。2)以这种方式声明:
weak var coordinator: MainCoordinator?
extension UIViewController {
将使错误静音,但协调器不会执行任何操作。任何建议如何解决这个问题?