添加DataSource项后重新加载TTableView

时间:2010-02-24 22:31:25

标签: iphone objective-c cocoa-touch three20

这是我的初始化程序的代码:

if (self = [super init]) {
    self.title = @"Posts";
    self.variableHeightRows = YES;
    //XLog("");

    PostsDataSource *dataSource = [[[PostsDataSource alloc] init] autorelease];
    [dataSource.delegates addObject:self];
    [dataSource load:TTURLRequestCachePolicyMemory nextPage:NO];

    self.dataSource = dataSource;
}
return self;

在我的数据源中,我正在执行TTURLRequest,当requestDidFinishLoad被调用时,我的数据源会被一些项填充。

这一切都很好,但我的TTableViewController没有显示任何这些文件,因为它在我的数据源完成之前被初始化并显示。我知道它有效,因为将我的数据源缓存到磁盘会显示所有项目。

问题是:如何告诉我的TTableViewController在我的“requestDidFinishLoad”中刷新数据源文件中的数据?

1 个答案:

答案 0 :(得分:1)

您的数据源是否绑定到TTURLRequestModel?如果是这样,您可能会错过致电:

[super requestDidFinishLoad:request];

如果它绑定到基本TTModel,您可能会错过调用:

[self didFinishLoad];

这些应该在您的requestDidFinishLoad:方法中发生。

<强>更新 没意识到你没有使用TTModel。你的requestDidFinishLoad是否致电:

[self dataSourceDidFinishLoad];

根据以下评论再次更新 您正在阅读的文档或教程已过时,较新版本的Three20不再以这种方式工作。 http://three20.info/tutorials/github有一个很棒的教程可以让你回到正确的轨道上。