2009-12-04 17 views
9

selectRowAtIndexPath:animated:scrollPosition:からまでは、からUITableViewに行を選択してください。テーブルビューコントローラが初期化されたときにテーブルデータがロードされていないので、UITableViewControllerの初期化後すぐに選択を行うことはできません(そうでなければ、オーバーバウンド例外が発生します)。UITableViewで行を最初に選択する方法

答えて

6

ビューが既に表示されている場合でも、表示される前にビューの状態を設定するには、viewWillAppear:を使用する必要があります。 UITabViewControllerまたはUINavigationViewControllerの非表示のビューはいつでもアンロードできます。したがって、非表示のビューをカウントしてその状態を保持することはできません。

また、細かい制御のために、loadView,viewDidLoadおよびviewDidUnloadを実装してください。

ビューコントローラの独自の階層を維持する場合は、viewWillAppear、viewWillDisappearなどのメッセージを手動でサブビューコントローラに転送する必要があります。

3

試してみてviewWillAppear:animatedまたはviewDidAppear:animatedを試してみてください。スーパーもお電話ください。

selectRowAtIndexPath:indexPath animated:NOにも電話してください。時間がなくても選択されます。

+1

私はすでにこれを試しています。しかし残念ながら、私は手動で別のビューにサブビューとしてUITableViewを追加する必要がありますので、View ControllerのviewWillAppear:aimedまたはviewDidAppear:animatedは呼び出されません。また、ビューが表示されるたびに選択することは「初期選択」以上であり、この外観が最初のものかどうかを判断するために追加のフラグが必要です。 – an0

2

cell.selected = YESを使用して、uitableview.Byのcellforrowatindexpathメソッドで選択したセルを設定できます。

関連する問題