2012-01-08 9 views
0

タブの1つでユーザーが選択したオプションに応じて、アルファベット順または数値順にデータを表示するiPhone xcodeタブバーアプリケーションのテーブルビューがあります。それはほとんどの場合機能しますが、オプションを変更してからテーブルビューに戻ると、テーブルビューはオプションが変更される前と同じように見えます。しかし、新しいセルがスクロールして表示されると、新しいセルが表示されます。テーブルビューをリセットするにはどうすればよいですか?

オプションが変更されたときはわかりますが、セルを再初期化するコードが正しく表示されないように見えないので、次回に正しい値が表示されるようになります。データは設定された値を持つ静的配列から取得されるため、データソースではテーブルビューだけでは何もしたくありません。

つまり、表示オプションが変更されたら、次回のテーブルビューが表示されるときに、スクロールが発生してからではなく、最初から正しいデータが表示されるように、テーブルビューを消去したいとします。

ご協力いただければ幸いです。ありがとう。

答えて

2

TableViewでreloadDataを呼び出すように思えます。

[yourTableView reloadData];

+0

これは私の表示がどのように宣言されたかを示していますが、実行しようとすると [tableView reloadData]; tableViewは宣言されていません。 - (UITableViewCellの*)のtableView:(のUITableView *)のtableView \t \t cellForRowAtIndexPath:(NSIndexPath *)indexPath { – Rick

+0

私はそれについて考えると、私は慣れていないんですけれども、私は、reloadDataはこのために働くだろうわかりませんそれと。私は3つのデータ項目をフォーマットするカスタムセルビューを使用しています。私はテーブルセルをロードしています。私は "オプション"タブがロードされ、ユーザーからの入力を受け取った後、私はテーブルを解放し、次にロードされるときにゼロから始めたいと思う。 – Rick

+0

あなたはそれを間違った場所で呼び出そうとしていると思います。これは、TableViewを構築しているメソッドではなく、データの変更を引き起こしているどこかで呼び出す必要があります。タブバーがあり、1つのボタンをタップするとソート順が変わり、そのボタンのアクション内でデータをソートしてから[self.tableView reloadData]を呼び出します。あなたのTableViewにiVarを使用します。 *別のコントローラで、2番目のコントローラのTableViewのデータに影響するものを変更する場合は、データを更新してリロードするデリゲートメソッドbackが必要です。またはオブザーバー。これを行うための多くの方法。 –

関連する問題