我在一个线程中做所有事情,并且刚刚开始转向异步调用,所以我有点困惑。
我想要的是加载视图,无论是空表还是根本没有表。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 顶部显示一个空表,然后在调用后再次显示 reloadData . 我如何让它第一次不运行?
谢谢。