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