如何延迟加载第一个View Controller?

时间:2015-06-10 16:29:56

标签: ios

我想延迟加载第一个视图控制器,直到AppDelegate中的一个函数完成。该功能应为第一个视图控制器准备一些数据。但是现在,第一个视图在没有应该由AppDelegate中的函数准备的数据的情况下加载

什么是推荐方式或示例?请。

2 个答案:

答案 0 :(得分:1)

您是否可以将获取数据的代码移至viewControllers“viewDidLoad”方法?

在视图控制器进入内存并且元素可访问之后,但在它实际变为可见之前,会调用此方法。您在此处执行的任何处理都必须在内容显示之前完成,并且是我从服务器等处获取内容的方法。

如果处理需要很长时间,那么也可以使用微调器让用户知道正在发生的事情,因为在处理完成之前不会显示任何内容,用户可能认为它已挂起。

答案 1 :(得分:0)

延迟创建对象直到它们被引用的一种方法称为延迟初始化。在objective-c中,您可以通过覆盖属性的getter来实现此目的。这是一个片段:

假设:

@property (nonatomic, strong) NSObject *someObject;

您可以实现

- (NSObject *)someObject {
    if (!_someObject) {
        _someObject = [NSObject new];
    }
    return _someObject;
}

这样,someObject仅在首次引用时创建。希望这有帮助!