私は4つのクラス(ビュー)を持っています:
A、B、C、D
クラス A が B に電話し、B が C に電話し、C が D に電話する:
A > B > C > D
クラス DI ではデリゲート プロトコルが実装されており、クラス A でデリゲート イベントをキャッチしたいと考えています。
どうすればこれを達成できますか?
私は4つのクラス(ビュー)を持っています:
A、B、C、D
クラス A が B に電話し、B が C に電話し、C が D に電話する:
A > B > C > D
クラス DI ではデリゲート プロトコルが実装されており、クラス A でデリゲート イベントをキャッチしたいと考えています。
どうすればこれを達成できますか?
これを達成する方法は複数あります。あなたの場合に何が最善かは、状況によって異なります。ここにいくつかのアイデアがあります:
NSNotifications
と混同しないでください)を使用できます。NSUserNotifications
クラス A ではデフォルトの通知センターに通知を投稿し、クラス D ではこの通知に登録して必要に応じて処理します。ただし、このアプローチは、他に何も機能しない場合にのみ使用してください。コードがさらに悪化する可能性があるためです。ClassD メンバー デリゲートを ClassA オブジェクトとして割り当てます。
説明させてください
ClassD に UITableView があり、ClassA で ClassD の tableView デリゲートをトリガーする場合は、tableView デリゲートを ClassA オブジェクトとして割り当て、すべての UITableView デリゲートを ClassA に実装します。
例えば:ClassD_tableView.delegate = classAObj;
注: クラス A に ClassD の tableView デリゲート メソッドを実装し、ClassD 内から ClassA の新しいオブジェクトを作成しないでください。パラメータを渡すか、UIResponder を使用して、ClassD の親クラス A を取得できます。