2009-12-04 31 views
9

我找不到合適的位置,請先撥打selectRowAtIndexPath:animated:scrollPosition:選擇一行UITableView。表數據時,表視圖控制器的初始化還沒有被加載,所以我不能做選擇即時我UITableViewController初始化後(過界例外,否則會出現的)。如何初步選擇UITableView中的一行

回答

6

您需要使用viewWillAppear:來設置視圖的狀態,每次出現時,即使該視圖已經被顯示過。 UITabViewController或UINavigationViewController中的任何不可見視圖都可以隨時卸載,因此您無法依賴不可見視圖來保持其狀態。

或者,爲了更好的控制,實施loadView,viewDidLoadviewDidUnload

如果要維護自己的視圖控制器的層次,你將有viewWillAppear中,viewWillDisappear等,消息手動轉發給你的子視圖控制器。

3

嘗試和超載viewWillAppear:animatedviewDidAppear:animated確保超以及調用。

確保調用selectRowAtIndexPath:indexPath animated:NO爲好,它會沒有時間延遲選擇。

+1

我已經嘗試了這些。但不幸的是,我需要手動添加UITableView作爲子視圖到另一個視圖,所以視圖控制器的viewWillAppear:aimated或viewDidAppear:animated將不會被調用。此外,選擇每次出現的視圖不僅僅是「初始選擇」,並且需要額外的標記來確定該外觀是否是第一個。 – an0 2009-12-04 15:16:09

2

可以設置使用cell.selected = YES在uitableview.By的方法的cellForRowAtIndexPath選擇任何細胞;

相關問題