我有一个具有容器视图的 viewController。在容器视图中,我有一个包含静态单元格的 tableView。每个单元格都有一个披露指标。这一切都是在 IB 中创建的。父 viewController 嵌入在 navigationController 中。
每个单元格都会推送一个新的视图控制器,该控制器加载一个 mapView。每个地图都会解析并加载一个 .kml 文件。.kml 文件很大,需要一分钟(或更长时间)才能加载。
我使用以下代码在每个单元格的附件视图中放置了一个 activityIndicator:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
UIActivityIndicatorView *activityView =
[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[activityView startAnimating];
[cell setAccessoryView:activityView];
[self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];}
这似乎按预期工作。
查看地图后,我触摸导航控制器提供的“返回”按钮,然后将地图从堆栈中弹出。我的嵌入式 tableView 再次可见,活动指示器仍在旋转。我不能让它停下来。
我最好的尝试是在我的 tableView 的实现文件中:
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[[self tableView] reloadData];}
但这没有用。有什么建议么?