12

我已经阅读了很多关于这个论点的内容,我已经测试了这个有效的例子: 源代码示例。但这不使用情节提要(我不知道这是否是使我的项目无法正常工作的原因)我使用情节提要制作了另一个项目,相同的指令顺序不起作用...

-(void)viewDidAppear:(BOOL)animated{
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:1 inSection:0];
    [firstController.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
    [firstTable.delegate tableView:firstTable didSelectRowAtIndexPath:indexPath];
}

这是我的项目,与上一个链接相同,仅添加 viewDidAppear 我不工作的项目 可以有人告诉我出了什么问题吗?谢谢

4

2 回答 2

25

我试图研究您下载项目的代码。问题是 firstController.tableView 为零。
所以修复它:

[firstTable selectRowAtIndexPath:indexPath 
                        animated:NO 
                  scrollPosition:UITableViewScrollPositionNone];

或者将 firstController.tableView 分配给表格视图。

于 2012-12-10T20:49:50.080 回答
22
- (void)viewDidLoad {
    [self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionNone];
}

如果您想要来自委托的回调:

if ([self.tableView.delegate respondsToSelector:@selector(tableView:didSelectRowAtIndexPath:)]) {
    [self.tableView.delegate tableView:self.tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
}
于 2012-12-10T20:44:14.343 回答