点击 UIBarItem
时不会调用委托(delegate)方法。我经历了很多建议,所有的建议都和我写的一样。
我按照建议试了,没有解决办法。到处给委托(delegate)打电话。我做了每件事。
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
。- 意味着 View Controller 可以直接调用
CommonClass
方法。 - 您可以从
ViewController
直接调用goToCart()
方法。
因此,无需使用委托(delegate)模式来调用CommonClass
的方法。
关于ios - 在 UIBarItem 点击时未调用委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39484506/