2009-05-13 8 views
0

メッセージの一覧を表示しているテーブルビューコントローラがあります。ユーザーが自分のメッセージに対して異なる並べ替えオプションを選択できるようにします。いくつかの並べ替えオプションは、最新のもの、未読のもの、送信者によるものなどがあります。並べ替え可能なデータソースにテーブルビューを接続する方法

メッセージの根本的なリストを管理する適切な方法は私が自分で考えていることです。ここに私の現在の計画があります:

私はカスタムMessageList Modelオブジェクトを持っています。 sortedByプロパティを追加して、コントローラが現在のソート方法をチェックし、必要に応じてリストを整理できるようにします。 MessageListは、選択されている現在のソート方法に基づいて、新しいメッセージを適切に挿入する責任を負う必要があります。

私はMessageListのソートされたコピーを作る必要がないので、私はこのアプローチが好きです。また、コントローラー(indexPath.row == indexOfMessageInList)の操作も簡単です。

誰も同じような状況にあって、より良いアプローチを発見しましたか?

+0

これは私にとってかなり良い解決策のようです。基になるMessageListにソートを適用した後は、テーブルビュー - [tableView reloadData]などを更新する必要があることを覚えておいてください。 – Tim

答えて

0

計画はかなり固体だが、私は何をするだろうことはsortedByのカスタムセッターを実装してあり、それが呼ばれるたびに、実際の変更があったときはいつでもまた[tableView reloadData]に電話をかけます。このようなもの:

- (void) setSortedBy:(SEL)someSortMethod { 
    # check if the sort method is new or not 
    # perform operations on list to sort it 
    sortedBy = someSortMethod; 

    [self.tableView reloadData]; 
} 
関連する問題