protocol testDelegate: class {
func open(channel: String, vc: UIViewController)
}
class test: UIViewController{
weak var delegate: testDelegate?
}
override func viewDidLoad() {
super.viewDidLoad()
if self.delegate != nil {
print("hello")
self.delegate?.openGroupChannel(channel: channel!, vc: self)
}
即Class Test! test类中的protocol init以及
class calling:testDelegate{
override func viewDidLoad() {
//blah blah
}
func func open(channel: String, vc: UIViewController){
print("calling")
}
这是在呼唤班级。
我想在调用类中调用open func但它根本不调用, 甚至print(" hello")在测试类中没有调用它保持返回nil因此也不调用调用函数。
答案 0 :(得分:3)
您需要将calling
设置为test
ViewController的委托。
在您的calling
班级中,在导航前创建test
班级的对象,并将calling
班级设为test
班级的代表
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let testVc = segue.destinationViewController as? test {
testVc .delegate = self
}
}
希望它有所帮助..快乐编码!!