UISplitViewController:在TableView中加载第一行

时间:2012-01-04 22:14:01

标签: objective-c uisplitviewcontroller

我有一个UISplitViewController,左边是UITableView,自定义视图是详细视图。 加载UISplitViewController时,我希望在详细视图中选择和查看TableView中的第一个元素。目前我正在TableView viewDidLoad中尝试这个:

- (void)viewDidLoad
{
    [super viewDidLoad];

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

这几乎可以工作,除了当前行没有突出显示为用户选择它时。有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

如何使用[UITableView selectRowAtIndexPath:animated:scrollPosition:]? 这样的事情。

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

didSelectRow...是一种回调方法,不应该像这样使用。

答案 1 :(得分:1)

你不应该致电didSelectRowAtIndexPath:。您想要的方法是selectRowAtIndexPath:animated:scrollPosition:

您可以考虑使用单独的方法作为在详细信息视图中显示内容的默认方式。例如- (void)displayObject:(NSObject *)objectToDisplay。这可以是你在didSelectRowAtIndexPath中调用的内容,但是通过在该方法之外移动实际逻辑,你可以在其他地方调用,例如viewDidLoad或viewWillAppear。在那里你还可以找出你想要显示的对象(如果你正在处理一个简单的数组),并将其显示出来。