2017-04-13 6 views
1

私のプロジェクトでは、データを返すとうまくいく代議員がいますが、いくつかのサブビューを追加するか、受信側の代理メソッドで何もしません。同じメソッドのコードはOKです! 私の他の質問は代理人にも実現されています: これは一部の代理人に起こります。デリゲートは応答しませんが、Web上で非常に奇妙な修正を見つけました。なぜこれが起こり、なぜこの修正が機能するのかを知る必要があります。速報の代理人3ビューの関連コードを実行しません

私の最初のビュー:

protocol SomeDelegate { 
    func someMethod() 
} 

class FirstViewClass { 
    //in init or didLoad method 
    var delegate: SomeDelegate? 

    // THIS DELEGATE WON'T WORK BUT WHEN I ADD THIS LINE IT WORKS FINE(IT STILL HAS THE ABOVE PROBLEM) 
    self.delegate = SecondViewClass() 

    //in some custom method 
    self.delegate?.someMethod(); 
} 

私の2番目のビュー:

class SecondViewClass : SomeDelegate { 
    var firstView = FirstViewClass() 

    // this is in init or didLoad method 
    firstView.delegate = self 

    //this is in some custom method 
    someMethod() 
} 

答えて

0

簡単な作業プロトタイプ:

protocol SomeDelegate { 
    func someMethod() 
} 

class FirstViewClass { 
    var delegate: SomeDelegate? 
} 

class SecondViewClass : SomeDelegate { 
    var firstView = FirstViewClass() 

    func someMethod() { 
     print("called via delegate") 
    } 
} 

var firstClass = FirstViewClass() 

var secondClass = SecondViewClass() 

firstClass.delegate = secondClass 

firstClass.delegate?.someMethod() 
関連する問題