委托方法不是通过点击UIBarItem来调用的。我经历了这么多的建议都和我写的一样。
我按建议试过了,没有解决办法。无论在哪里,给代表打电话。我做了每一件事。

class ViewController: CommonClass,Mydelegate {

    var vc = CommonClass()

    override func viewDidLoad() {
        super.viewDidLoad()
        vc = CommonClass(nibName: "CommonClass", bundle: nil)
        initializeCartBarButton()
        vc.delegate = self
        print( (vc.delegate))
    }

    func testing() {
        print("hello")
    }
}

class CommonClass: UIViewController {

    var delegate:Mydelegate?

    func initializeCartBarButton() {
        let cartBarButton = UIBarButtonItem()
        cartBarButton.title = "cart"
        cartBarButton.target = self
        cartBarButton.action = Selector("goToCart")
        self.navigationItem.rightBarButtonItem = cartBarButton;

    }

    func goToCart() {
        print("hi")
        if self.delegate?.testing() != nil {
            self.delegate?.testing()

        }else {
            print(self.delegate)
        }
    }
}

最佳答案

我看到的是:
CommonClass继承UIViewController
ViewController继承CommonClass
意味着视图控制器可以直接调用CommonClass方法。
您可以直接从goToCart()调用ViewController方法。
因此,不需要使用委托模式来调用CommonClass的方法。

10-06 15:35