0

tabBar と tableViews に基づく iPhone アプリがあります。ユーザーが 1 つのタブをクリックして、最初の tableView でデータをフィルタリングするためのオプションにアクセスできるようにしたいと考えています。

私が抱えている問題は、ユーザーがフィルター条件を選択している間に、メイン テーブル (表示されていない) を更新したいということです。これが重要な理由は、ナビゲーション バーでフィルター処理されているときにテーブルに残っているセルの数を表示したいからです。

現在、メイン テーブルをフィルタリングするメソッド (-handleFilter) は、rootViewController クラスの viewWillAppear メソッドで呼び出されます。「searchOptions」クラスからこのメソッドを呼び出すにはどうすればよいですか?

助けてくれてありがとう!

4

2 に答える 2

2

モデルとコントローラーを混同しすぎているようです (MVC 設計パターンに従っていると仮定します)。メイン テーブル以外の他のコントローラは、メイン テーブル コントローラに問い合わせることなく、モデル自体にクエリを実行してカウント情報を表示できる必要があります。

誤解している可能性がありますが、使用しているデータと、他のタブバー項目に接続されているコントローラーでデータがどのようにフィルター処理されているかについてもう少し情報があれば役立ちます。

于 2009-11-05T03:05:29.303 に答える
1

最も簡単な方法は、オプション コントローラーにリスト コントローラーへのポインターを与えることです。その後、メソッドを直接呼び出すことができます。

その他のオプションには、グローバル オブジェクト (アプリ デリゲートなど) のメソッド/プロパティを定義して、アプリ内の別の場所からリスト コントローラーにアクセスすることや、NSNotificationCenter(メソッド呼び出しではなく) その情報を渡すなどのより分散化されたメカニズムを使用することが含まれます。モデル自体に依存して、モデルが変更されたときにそれにアクセスするすべてのコントローラーに通知します (おそらく Key-Value Observing または明示的なデリゲート プロトコルを使用します)。

于 2009-11-05T03:07:57.783 に答える