我有一个UITableViewController实现UIRefreshControl来刷新服务器的数据,从调试中我可以看到调用了刷新方法并且下载了新的正确数据但是我的UITableViewController没有反映这一点。
如果我关闭UITableViewController并再次打开它会显示正确的数据
我的刷新代码如下所示
- (void)viewDidLoad {
[super viewDidLoad];
UIRefreshControl *refresh = [[UIRefreshControl alloc] init];
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to Refresh"];
[refresh addTarget:self action:@selector(updateData)
forControlEvents:UIControlEventValueChanged];
self.refreshControl = refresh;
}
- (void) updateData {
[ShopifyWebServices fetchAllProductsInCollection:shopifyCollectionTitle];
[self performSelector:@selector(stopRefresh) withObject:nil afterDelay:5];
}
- (void)stopRefresh {
[self.refreshControl endRefreshing];
}
答案 0 :(得分:2)
您有责任在获得新数据后重新加载表格视图。除了告诉您已触发之外,刷新控件不会执行任何操作。
我希望在fetchAllProductsInCollection
之后使用某种委托方法或完成块,这就是你应该调用endRefreshing
并重新加载表数据的地方。