2011-09-03 12 views
0

iITableViewのアイテムが選択されているとき、iOSアプリケーションが詳細ビューに現在の制御を移しています。これはクイズプログラムで、行を選択したときに正しい答えが強調表示された同じテーブルビューを再表示するようにアプリを変更したいと思います。これを行うための良いアプローチは何ですか?iOS - アイテムを選択した後で同じテーブルビューを表示する方法

答えて

0

詳細ビューが表示されている理由がわかっていれば、私には分かりません。だから私はちょうどその場合に説明します。詳細ビューを制御する場合は、コードのどこかでその詳細ビューを押しているからです。それはあなたが使用しているUITableViewCellの種類によって異なります。カスタムセルを使用している場合は、あなたが見てする必要があり

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

または

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath 

:あなたはデフォルトスタイルの1つを使用している場合は、あなたの詳細ビューは、おそらくどちらかにプッシュされていますその詳細図を にプッシュする方法。

私は良いアプローチがになると思い:

  1. それはどこにプッシュすることを削除します。
  2. UITableViewCellAccessoryTypeを使用している場合は、使用しないでください。
  3. で次のような何かをするあなたのtableView:didSelectRowAtIndexPath:

    • タップ細胞に応じて、お使いのモデルの配列の正しい答えの行を検索します。
    • この行番号を使用してNSIndexPathを生成します。 NSIndexPathは、そのセルにcellForRowAtIndexPath:
    • コールsetSelected:animated:で正しいセルを見つけるため
    • 使用することは、それをハイライトします。

注:あなたのクイズは、あなたがより良いUXのためのあなたのUITableViewへの正しい答えをスクロールする必要がある画面に収まるUITableViewCellsの量よりも多くの答えを持っている場合。

+0

再度確認します。 –

+0

問題は、選択が行われたときにcellForRowAtIndexPathが呼び出されないことです。 –

+0

これはデリゲートが呼び出すメソッドではないため、 'tableView:didSelectRowAtIndexPath:'を呼び出します。 – rjgonzo

関連する問題