使用UIViewController时,通常在哪里加载数据?
当我说“加载数据”时,我的意思是: API调用来获取它及其操作。
您是在视图控制器初始化器中加载它,还是在此之前加载它来初始化并传递它?还是将代码添加到viewDidLoad中?
另外,rootViewController的数据如何?当你启动这个应用程序的时候,是从故事板开始的吗?
发布于 2019-10-15 16:49:15
--您是在视图控制器初始化器中加载它,还是在此之前加载它来初始化并传递它?还是将代码添加到viewDidLoad中?
通常这样做,在MVC中,您可以调用控制器加载数据并刷新vc类表/集合的内容,这涉及到发送数据用例,也就是所谓的依赖注入。
也是,那么rootViewController的数据呢?
rootViewController与任何其他vc相同。
发布于 2019-10-15 20:24:27
首先,如果您的应用程序不是很简单,我建议不要在ViewController中加载数据代码。最好是把它放在单独的课堂上。请查看MVP或VIPER设计模式以获得更多信息。
至于何时加载您的数据(在加载视图之后还是之前),更多的是UX决定。当然,如果您在开始加载之后,屏幕可能是空的一段时间,最好在屏幕上有一些加载指示符,这样用户就不会感到困惑。用户是否经常看到空屏幕取决于您是否永久地(在本地DB中)存储加载的数据,是否有一些运行时缓存,或者没有这些数据。如果您有一些缓存,空屏幕将只显示一次,因为如果加载和缓存数据,您将显示这一点,并在接收到新数据后更新屏幕。
您还可以在加载视图之前(在loadView()中)开始加载数据,或者为不可见的视图加载一些最小的数据(以便在打开视图时这些数据不是完全空的),然后在加载视图后加载完整的数据。
您选择的任何方法都在很大程度上取决于您希望提供什么样的用户体验,也取决于加载数据所需的时间。
发布于 2019-10-16 01:54:30
一条线上的答案是可见载荷,但下面是实际的结构方法。
因此,您可以有多个答案,目前最流行的答案是使用MVC/MVVM。因此,让我们讨论一下带有委托/协议的MVVM
建模-你的数据。
视图模型-在这里初始化/修改/处理数据。
在这里,您可以初始化视图模型,并通过委托协议机制与视图模型提供的数据进行交互。
https://stackoverflow.com/questions/58399285
复制相似问题