首页 > 解决方案 > swift 如何在几个ViewControllers中查看downloadTask的进度

问题描述

我有两个viewControllers VCList(CollectionView with items)VCDetails,通过从VCList中选择项目它打开VCDetails,在VCDetails上我有按钮下载,根据所选项目开始下载大文件并显示其进度,通过关闭VCDetails我想在VCDetails上显示进度,如果它仍在下载,则再次输入该 VCDetails 时,我想显示下载的持续进度。请就如何实现这一目标提出任何建议?非常感谢

标签: iosswifturlsession

解决方案


这听起来像是一个松散耦合的通知。我建议让您的下载过程Notification以适当的间隔(每隔几秒)将消息广播到主线程。然后让当前视图控制器订阅这些通知并使用它们来更新下载进度指示器。

更好的是,创建一个可重复使用的下载进度指示器,该指示器采用下载 ID 并侦听进度更新。让您的下载管理器返回一个唯一的下载 ID,并将其传递给需要显示进度的视图控制器。让视图控制器将下载 ID 安装到其可重复使用的下载指示器视图中。


推荐阅读