我有一个 UITableViewController,它应该在后台获取数据,然后刷新 UITableView。但是,当我在后台运行 update 方法时,它会破坏整个应用程序中的所有过渡动画(将视图控制器推到导航堆栈时的幻灯片)。奇怪的是,完全相同的模型在与这个非常相似的其他类中工作。这是我用于后台更新的调用:
[self performSelectorInBackground:@selector(updateData) withObject:nil];
然而,这是可行的,但当然不是在后台完成的:
[self updateData];
最后运行的方法:
- (void)updateData{
updating = YES;
[progress show:YES];
dataSource = [[NetworkHandler sharedInstance:self] getRaces];
[progress hide:YES];
updating = NO;
[self.tableView reloadData];
}
更新标志绝不是对信号量的尝试,只是一种确保在用户在视图之间来回切换时视图不会被更新两次的方法。;)