【问题标题】:How to delay viewDidLoad() until response from server? [duplicate]如何延迟 viewDidLoad() 直到服务器响应? [复制]
【发布时间】:2016-10-09 09:41:44
【问题描述】:

我想在我的主视图控制器加载之前更新我的模型对象。目前,在我的模型从服务器接收数据之前,更新视图的代码正在运行,因此主视图显示错误的数据。

我正在使用 PubNub。 appdelegate 中设置了一个监听器,当接收到数据时触发。

【问题讨论】:

  • 你需要实现类似updateData 的东西来从后端加载并用一些加载指示器重新加载你的viewController,在你的主线程上等待服务器响应不是一个好习惯
  • 你不想以任何理由延迟viewDidLoad。这是一个糟糕的用户体验,如果它发生在错误的时间,看门狗进程可能会杀死你的应用程序(0x8badf00d;lol)。相反,您应该让您的应用显示最近的已知数据和/或一些调光视图和/或UIActivityIndicatorView,让用户知道有更多数据进入。

标签: ios swift pubnub


【解决方案1】:

永远不要延迟 viewDidLoad() - 当没有数据要显示时,您需要有一个空白/加载屏幕来显示。一旦数据到达 - 让它调用一个更新函数来显示它。

【讨论】:

  • 我同意塞萨尔的观点。尝试延迟 viewDidLoad 是不好的,并且可能会导致您的应用程序被终止,因为系统会认为它已挂起。在服务器上等待时,您需要显示 SOMETHING。一种可能是带有活动指示器的浮动“正在加载,请稍候”视图。
猜你喜欢
  • 2018-05-19
  • 2011-09-26
  • 1970-01-01
  • 1970-01-01
  • 2018-08-09
  • 2013-01-02
  • 2012-02-08
  • 2023-04-10
  • 2023-03-23
相关资源
最近更新 更多