このコントローラーには、メソッドがほとんどないデリゲート プロトコルを実装する子コントローラーがあります。
ParentController : UIViewController <ChildControllerDelegate>
親コントローラーには、それ自体から呼び出されるメソッドがあります(呼び出しますdoSomething
)。
doSomething
ここで、子コントローラー内のボタンからこのメソッドを呼び出す必要があります。だから私は3つのオプションを考えることができます:
- プロトコルにメソッドを追加し
pleaseCallDoSomething
、ボタンからこのメソッドを呼び出してから、このpleaseCallDoSomething
メソッドを親ビュー コントローラーに実装し、最後にdoSomething
内の を呼び出しますpleaseCallDoSomething
。 2 番目のオプションは、子ビュー プロトコルに新しいメソッドを登録せず、単に以下を使用することです。
[btn addTarget:self.delegate action:@selector(doSomething) forControlEvents:UIControlEventTouchUpInside];
プロトコルにメソッドを追加
doSomething
して親ビュー コントローラーに実装し、親ビュー コントローラー内で必要に応じてローカルで呼び出します。(デリゲートからローカルでデリゲート メソッドを呼び出すことを意味します)。
ベストプラクティスは何ですか?
ありがとうシャニ