gpt4 book ai didi

ios - 从详细 View Controller 返回时停止嵌入式 TableView 单元格中的 activityIndi​​cator

转载 作者:行者123 更新时间:2023-11-29 13:07:08 25 4
gpt4 key购买 nike

我有一个带有容器 View 的 viewController。在容器 View 中,我有一个包含静态单元格的 tableView。每个单元格都有一个披露指示符。这一切都是在 IB 中创建的。父 viewController 嵌入在 navigationController 中。

每个单元格都会推送一个加载 mapView 的新 View Controller 。每个 map 解析并加载一个 .kml 文件。 .kml 文件很大,需要一分钟(或更长时间)才能加载。

我使用以下代码在每个单元格的附件 View 中放置了一个 activityIndi​​cator:

- (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];}

这似乎按预期工作。

查看 map 后,我触摸导航 Controller 提供的“后退”按钮,将 map 从堆栈中弹出。我的嵌入式 tableView 再次可见,事件指示器仍在旋转。我无法让它停止。

我最好的尝试是在我的 tableView 的实现文件中:

- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[[self tableView] reloadData];}

但这没有用。有什么建议吗?

最佳答案

在 TableView Controller 的 viewWillAppear 中调用 reloadData 会起作用,只要在 cellForRowAtIndexPath 方法中,您正在为 UIActivityIndi​​catorView 通过为任何不应旋转的单元格调用它的 stopAnimating 方法(或简单地将其从 View 中删除)。

您需要通过 accesstoryView 属性引用事件指示器。

在您的数据中,您可以存储一个属性,指示该 map 的指示器是否仍应旋转并适本地设置它。

另一种方法是在显示 map View 之前停止 prepareForSegue 中的事件指示器。

关于ios - 从详细 View Controller 返回时停止嵌入式 TableView 单元格中的 activityIndi​​cator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18319119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com