【发布时间】:2015-02-13 10:29:02
【问题描述】:
我有一个根视图控制器,它以标准动画呈现模态视图控制器(模态视图控制器从下到上出现)。
让我们将此视图控制器命名为 MyRootViewController 和 MyModalTableViewController。
问题是如果MyModalTableViewController在出现时重新加载数据,动画就会停止。
例如:
- (void)openModalViewController {
MyModalTableViewController * vc = [self.storyboard instantiateViewControllerWithIdentifier:@"myModalScreen"];
[self presentViewController:vc animated:YES];
}
在MyModalTableViewController 我有下一个代码:
- (void)viewDidLoad {
self.itemList = [[MyData sharedInstance] itemList]; // self.itemList is NSArray
}
// ...
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MyTableViewCell * cell = [tableView dequeReusableCellWithIdentifier:@"myCell"];
cell.item = self.itemList[indexPath.row];
return cell;
}
所以当MyModalTableViewController 从情节提要加载时,它会加载itemList 并在UITableView 上显示它。只有当UITableView 完成加载数据时,演示动画才会开始。我猜是因为动画和数据重新加载在同一个线程中工作。因此,如果我要显示 10000 个项目,则需要几秒钟,然后才会开始演示动画。
太慢了。所以我的问题是解决这个问题的最佳方法是什么?
【问题讨论】:
-
为什么不反其道而行之?首先是动画(可能带有活动指示器),然后是 reloadData。
标签: ios objective-c uitableview uianimation presentviewcontroller