1

私のアプリでは、いくつかの異なるページにアクティビティフィードを表示しています。したがって、私はコードを複製していません。このフィードには独自のUITableViewControllerコードがあります。ページごとに、このフィード(テーブル)が表示する領域を指定し、各場所で同じUITableViewControllerコードを使用したいと思います。どうすればいいですか?すべてのロジック/コードは、ベースVCではなく、そのUITableViewControllerによって処理される必要があります

すべての行/セクション/タッピングロジックを含む特定のUITableViewController(FeedViewController)クラスを作成してみました。次に、ページごとにUITableViewにドロップし、FeedViewControllerを割り当て、デリゲート/データソースをFeedViewControllerに設定しました。これは、新しい画面をプッシュしたり、reloadDataを呼び出したりする場合(ユーザーがテーブルを操作した方法に基づく)を除いて、うまく機能します。'pushThisView'や'reloadThisTable'などのデリゲートメッセージをベースVCに返送する必要があります。これは汚いようです。

埋め込まれたUITableViewControllerがそれ自体のテーブルをリロードし、新しいビューを親VCにプッシュ/却下できるようにするにはどうすればよいですか?

4

1 に答える 1

3

UIViewControllerのクラスリファレンスで説明されているように、ContainerViewControllerを使用する必要があります。これにより、カスタムフレームとトランジションを使用しUIViewControllerて任意の親の内部に任意のデータを埋め込むことができます。ドキュメントとこの回答UIViewControllerで知っておく必要のあるすべてのものを見つけることができますが、セットアップするコードサンプルは次のとおりです。

FeedViewController *feedViewController = ... // create your view controller
[self addChildViewController:feedViewController];
feedViewController.view.frame = ... // frame for view
[self.view addSubview: feedViewController.view];

[feedViewController didMoveToParentViewController:self];
于 2012-11-25T18:28:20.690 に答える