プロジェクト内の他のViewControllerの基本クラスとして機能できる、プロジェクトのBaseViewController
クラス(から継承する)が必要です。UIViewController
これは、共通の進行状況HUD、更新ボタンとネットワーク更新メカニズム、各サブクラスによってテキストでカスタマイズできるエラーダイアログなどを追加するためのものです。
UIViewController
重要なのは、この機能をサブクラスとサブクラスの両方に追加できるようにしたいのですが、クラス階層にUITableViewController
自分自身を挿入できないため、効果的にとが必要ですが、これを行う場合は、変更を2回実装する必要がありますそれらの同期を維持します。UITableViewController
BaseUIViewController
BaseUITableViewController
BaseViewController
サブクラスとサブクラスの両方にアクセス可能でなければならない共通のコードのための単一の場所を持つための最良のアプローチは何BaseTableViewController
ですか?一般的なタスクを処理する必要があるコード内の場所が1つだけ必要です。
1)連想参照を持つカテゴリを使用することを考えましたが、ここでの問題は、viewDidLoad:などのViewControllerライフサイクルクラスのカスタム実装が必要なことです。これはお勧めできません。
2)UITableViewController
完全にスキップしBaseTableViewController
て、BaseViewControllerから独自の実装を行い、自分でメソッドを実装することもできtableView
delegate
ますが、datasource
ここではAppleのコントローラーの実装をスキップすることにそれほど熱心ではありません。
3)BaseViewController
から継承しUIViewController
、からBaseTableViewController
継承し、両方の「ベース」ファイルから呼び出すことができるUITableViewController
3番目のファイルにカスタムメソッド呼び出しを配置することができます。ViewControllerBaseMethods
プロパティの重複はまだあるかもしれませんが、少なくともメソッドコードは1か所にあります。
このタイプのもののための他の良いアプローチはありますか?