1

私は、映画の時間を表示するためのiPhoneアプリケーションの設計とコーディングを行っています。私は現在、以下を含む映画クラスを持っています:

  • NSString title
  • NSSDate releaseDate
  • NSSDate score

私のUIはシンプルUINavigationControllerで、タイトルとしてセグメント化されたコントロールがありUITableView、InterfaceBuilderでムービーの設定を表示します。セグメント化されたコントロールには、タイトル、開始日、スコア(RottenTomatoes)の3つのセグメントがあります。テーブルビューのデータは現在NSMutableArray movies、AppDelegateのプロパティであるによって提供されています。

UITableView次のコードを使用してターゲットアクションを登録できることは知っていますが、この時点でデータを並べ替える方法がわかりません。

[segmentedControl addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged];

選択したセグメントが変更さUITableViewれるたびに、どこでどのように再利用しますか?UISegmentedControl

4

3 に答える 3

1

データソースのtableView:cellForRowAtPath:メソッドにロジックを配置して、UISegmentedControlの現在の値を確認し、各行に返されるセルを適切に変更できます。次に、セグメント化されたコントロールの値が変更されるたびに、呼び出すだけです。

[tableView reloadData];

これで準備は完了です。

于 2009-06-26T18:01:12.230 に答える
1

私は3つの異なる方法でアイテムを並べ替え/フィルタリングできるセグメントコントロールを持っています-アイテムの数はフィルター/順序によって異なるため、並べ替えられたリストを保持するために3つの異なるNSArrayオブジェクトを使用します。

したがって、データをロードするときに、そのバージョンを各配列の正しい場所に配置します(または、フィルターによっては配列に配置しません)。

セグメント化されたコントロールの状態を使用して、返す配列を決定する配列を取得するための呼び出しがあります。

通常の配列の代わりに配列を呼び出すメソッドが使用されます。これは、セグメント化されたコントロールが変更されたときに変更するために必要なのは、[tableViewreloadData]を呼び出すことだけです。

于 2009-06-26T18:52:00.010 に答える
1

sortArrayUsingまた、のxxxメソッドのいずれかを使用してデータを並べ替えることができますNSArray

于 2009-06-26T18:54:35.683 に答える