【发布时间】:2014-03-03 21:45:38
【问题描述】:
在我们的 iPgone 和 iPad 应用程序中,我们在不同的 ui 控制器之间使用 push segue 转换,其中大多数扩展了 UICollectionViewController。在每个控制器中,我们从内部 API 加载数据。加载完成 viewWillAppear 或 viewDidLoad。
现在,问题是,这个 API 调用有时可能需要一两秒钟,甚至三秒钟......好吧,那里有很多东西,假设我们无法更改它。但是,我们可以改变用户体验,至少添加“加载”圆圈指示器。问题是,我无法通过正确的概念理解,当从 A 过渡到 B 时,“加载”是在 B 完成的,而页面 A 仍然存在。
所以,问题是“如何在页面 A 上显示指示器,同时为页面 B 加载控制器?”
谢谢大家,
乌里。
【问题讨论】:
-
好吧,您可以简单地在
viewDidLoad中进行API 调用,然后在要在后台线程上呈现的视图控制器上调用loadView,仅在下载完成后推送segue。您对这种方法有疑问吗? -
@David 我认为差别不大。如果我按下一个启动 segue 的按钮但没有任何反应,我会认为出了点问题
-
@user2759361 显然,OP 应该在后台加载数据时显示活动指示器;)
-
@David - 不确定我是否理解如何实现这一点。从 A 实例化控制器 B?但是如何告诉
performSegue控制器B准备好了呢? -
@urir 您使用什么网络 API 来加载数据?在 AFNetworking 的情况下,您可以传递将在下载完成时执行的块。您可以使用此块告诉
AB已完成加载。类似的事情可以通过NSURLConnection中的委托协议来实现。
标签: ios iphone ipad uicollectionview uiactivityindicatorview