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 calling:testDelegate{
override func viewDidLoad() {
//blah blah
}
func func open(channel: String, vc: UIViewController){
print("calling")
}
これはコールクラスです。
呼び出すクラスでopen funcを呼び出すが、呼び出すことは全くありません。 テストクラスのprint( "hello")も呼び出していないので、return nilを保持しているため、関数も同様に呼び出されません。
呼び出しコントローラにテストコントローラのデリゲートを設定しましたか? –
@NiravD私はクラス呼び出しのように設定しました:このようなtestDelegate – john
これは、私が求めているプロトコルを実装するために使用されました。 –