我的ViewController有一个dataSource
,以我为例,必须从Web服务中获取数据。当我在ViewController中假设dataSource-method将花费很长时间并且仅从另一个线程调用它们时,这是一种不好的做法吗?
因此,我执行以下操作:
显示项目清单
用户触摸单元格
随即显示DetailViewController,其父级为其dataSource
现在,DetailViewController
显示加载指示器
向dataSource询问另一个线程中的数据
完成后隐藏指示符(在主线程上调用)
最佳答案
老实说,我更喜欢您通常会看到的这种方法:
用户触摸单元格
当前的UIViewController
向数据源询问数据
数据源向Web服务发出请求。
完成后,新的UIViewController
会加载数据。
但是,如果将微调器放在Cell上或某种视觉参考显示背景正在发生变化,则可能会给用户带来良好的体验。无论哪种方式,有时都取决于口味,用户体验,甚至是客户要求。
当我在ViewController中假设
dataSource-methods将花费很长时间
Murphy Law ...因此,最好假设这种情况并为发生这种情况创建必要的机制。