Objective c 为什么使用UIRefreshControl时我的UITableViewController不刷新?

Objective c 为什么使用UIRefreshControl时我的UITableViewController不刷新?,objective-c,uitableview,uirefreshcontrol,Objective C,Uitableview,Uirefreshcontrol,我有一个UITableViewController,它实现UIRefreshControl来刷新服务器上的数据,从调试中我可以看到调用了refresh方法并下载了新的正确数据,但我的UITableViewController没有反映这一点 如果关闭UITableViewController并再次打开,则会显示正确的数据 我的刷新代码如下所示 - (void)viewDidLoad { [super viewDidLoad]; UIRefreshControl *refresh

我有一个UITableViewController,它实现UIRefreshControl来刷新服务器上的数据,从调试中我可以看到调用了refresh方法并下载了新的正确数据,但我的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];

}

一旦有了新数据,您就负责重新加载表视图。刷新控件只会告诉您它已被触发


我希望在
fetchAllProductsInCollection
之后出现某种委托方法或完成块,这就是您应该调用
endRefreshing
并重新加载表数据的地方

您有责任在获得新数据后重新加载表视图。刷新控件只会告诉您它已被触发


我希望在
fetchAllProductsInCollection
之后出现某种委托方法或完成块,这就是您应该调用
endRefreshing
并重新加载表数据的地方

要管理tableview的数据,您应该使用table View的reloadData函数来管理tableview的数据,您应该使用table View的reloadData函数。我尝试了这个方法,但它仍然不会刷新,除非我进出-(void)updateData{[ShopifyWebServices fetchAllProductsInCollection:shopifyCollectionTitle];[self-performSelector:@selector(stopRefresh)withObject:nil afterDelay:5];[self.tableView reloadData];}是否可能我没有连接到数据源或其他东西?该代码将立即重新加载数据。如果您放置
[self.tableView reloadData]
在您的
stopfresh
方法中,它可能会工作,但您仍然在等待5秒钟,而不是在提取完成后实际执行。如果您没有连接数据源,那么它将永远不会工作。这起作用了,我实现了来自异步调用的通知,因此我在提取完成后进行刷新,您不是真正的sh拥有足够的代码-听起来你好像没有对从这个获取中返回的数据做任何事情,但是其他人知道它,并且当你关闭并重新打开它时,某些东西将它提供给了表视图。表的数据从哪里来?你是如何传递它的?一定有某种通知或委托
ShopifyWebServices
您可以使用。我尝试了此操作,但它仍然不会刷新,除非我进出-(void)updateData{[ShopifyWebServices fetchAllProductsInCollection:shopifyCollectionTitle];[self-performSelector:@selector(stopRefresh)with Object:nil afterDelay:5];[self.tableView reloadData];}是否可能我错过了连接数据源或其他东西?该代码将立即重新加载数据。如果您放入
[self.tableView reloadData]
在您的
stopfresh
方法中,它可能会工作,但您仍然在等待5秒钟,而不是在提取完成后实际执行。如果您没有连接数据源,那么它将永远不会工作。这起作用了,我实现了来自异步调用的通知,因此我在提取完成后进行刷新,您不是真正的sh拥有足够的代码-听起来你好像没有对从这个获取中返回的数据做任何事情,但是其他人知道它,并且当你关闭并重新打开它时,某些东西将它提供给了表视图。表的数据从哪里来?你是如何传递它的?一定有某种通知或委托
Sh您可以使用的opifyWebServices