0

サイドドロワー効果を与えるライブラリである ECSlidingViewController を使用しています。私のアプリケーションは、「近く」の結果の (ナビゲーション コントローラーを保持する) テーブル ビュー コントローラーに対して開き、セルはスクロール ビュー コントローラーにセグエします。

非表示の左側のメニューは、いくつかのオプションを持つ (異なるクラスの) テーブル ビュー コントローラーです。そのうちの 2 つは、起動時に表示されるテーブル ビューと同じレイアウト、セル プロトタイプ、および詳細スクロール ビューを使用する他のテーブル ビュー コントローラーです。

列挙型のtypeOfDisplayのようなある種のプロパティを備えた、より一般的なtableViewを作成する方が良い設計であるかどうかを知りたいです。これにより、サーバー/ CoreDataからのセルへの入力、ナビゲーションバーのタイトル、並べ替え順序など、さまざまなニュアンスを条件付きで管理できます。自動更新、編集可能性などの切り替え - または - 異なるビュー コントローラー (「近く」、「おすすめ」、「保存済み」) ごとに NavigationController->TableViewController->ScrollViewController を作成する必要がある場合

セル/表示/詳細は同じになるため、テーブル ビューを再利用したいのですが、テーブルを作成する方法が異なり、変更が難しいものを作成したくありません。

編集 -

タブバー コントローラー内のテーブル ビューに精通している場合、実装の詳細はほぼ同じであるはずです。

4

2 に答える 2

3

ビュー構成をView Controllerに入れる方が良いです。ただし、構成アクションを再利用する方法はあります。

私はあなたと同じ状況に遭遇しました。そして、ストラテジー パターンを使用してコントローラーをリファクタリングすることにしました。すべてのデータ関連のものをおよびプロトコルTableDataManagerに準拠するクラスに入れ、それにポリモーフィズムを適用して、セル内のデータと、実行時のさまざまな状況での の外観を構成しました。 UITableViewDataSourceUITableViewDelegateUITableView

同一のアクションはすべて に実装されてTableDataManagerおり、ニュアンスは のサブクラスによってオーバーライドされTableDataManagerます。の適切なサブクラスをTableDataManagerビュー コントローラーに割り当てることで、同じセル/表示/詳細アクションをあちこちにコピー アンド ペーストする必要がなくなります。

それが私の経験です。それが役立つことを願っています。

于 2013-08-02T05:41:36.980 に答える