2012-01-04 48 views
0

我有一個在左邊一個UITableView和詳細視圖的自定義視圖UISplitViewController。 當UISplitViewController被加載時,我想在TableView中的第一個元素被選擇並且在詳細視圖中觀看。目前,我TableView中viewDidLoad嘗試這樣的:UISplitViewController:加載第一行中的TableView

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [self tableView:self.tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]; 
} 

這幾乎工程,但當前行不突出時,由用戶選擇。有一個更好的方法嗎?

回答

1

你不應該叫didSelectRowAtIndexPath:。你打算方法是selectRowAtIndexPath:animated:scrollPosition:

您可以考慮使用一個單獨的方法作爲默認的方式來顯示您的詳細信息視圖的東西。例如- (void)displayObject:(NSObject *)objectToDisplay。這可能是你在你的didSelectRowAtIndexPath方法叫什麼,但通過該方法以外的移動實際的邏輯,你就可以在其他地方,比如viewDidLoad中或viewWillAppear中調用。在那裏,你也可以找出你想要顯示的對象(如果你正在處理一個簡單的數組),並按照這種方式顯示它。

3

如何使用[UITableView selectRowAtIndexPath:animated:scrollPosition:]? 就是這樣。

[self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionTop] 

didSelectRow...是一個回調方法,並且不意味着這樣的使用。