我在一个线程中做了所有事情,刚刚开始转向异步调用,所以我有点困惑。
我想要的是加载视图,无论是使用空表还是根本没有表。 MBProgressHUD应该在异步调用获取数据时显示。然后,当找到数据时,HUD消失,表格刷新。
我现在拥有的一切都是有效的,除了HUD显示在空表下面。这是最相关的代码。
- (void)awakeFromNib
{
[super awakeFromNib];
[MBProgressHUD showHUDAddedTo:self.tableView animated:YES];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
self.dataController = [[StudyController alloc] initWithCredentials:email password:password];
dispatch_sync(dispatch_get_main_queue(), ^{
[MBProgressHUD hideHUDForView:self.tableView animated:YES];
[self.tableView reloadData];
});
});
}
基本上我正在发生的事情是,我的所有代码都是在异步调用运行时正确运行一次表,并在HUD顶部显示一个空表,然后在我告诉之后再次调用它重新加载数据。如何让它第一次不运行?
感谢。
答案 0 :(得分:0)
如果没有看到你的表视图委托/数据源方法,很难衡量,但你的直觉是有道理的。在这种情况下,我可以看到两个选项:
我通常选择第二种方法,因为我更喜欢只关注表视图中的数据源和委托方法。
希望这有帮助!