相关疑难解决方法(0)

iOS 7 - viewDidLoad和viewDidAppear之间的区别

对不起,这可能不是一个编程问题本身,而是更多关于iOS生命周期功能的性质的询问.

我有一个应用程序,我有一个函数创建四个数组并通过数据库查询填充它们.首先,我从viewDidLoad函数调用函数,但是,每当加载View时,在视图实际出现之前需要花费时间(大约3-4秒).所以我做的是我创建了一个activityViewIndicator,我的viewDidLoad函数看起来像:

- (void)viewDidLoad:(BOOL)animated{
    [super viewDidLoad];

    NSLog(@"viewDidLoad Entered");
    [self.activityIndicatorView startAnimating];

    partInput.delegate = self;
    brandInput.delegate = self;
    barcodeInput.delegate = self;
    itemNameInput.delegate = self;

    //initializeArrays is the function that initializes the arrays
    [self initializeArrays];

    [self.activityIndicatorView stopAnimating];

}
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为viewDidLoad当应用程序仍在上一个视图中时会触发该功能.视图仅在viewDidLoad完成后才会显示.所以我做的是将数组初始化移动到我的viewDidAppear函数,看起来像:

- (void)viewDidAppear:(BOOL)animated{
    NSLog(@"viewDidAppear loaded successfully");
    [self.activityIndicatorView startAnimating];

    partInput.delegate = self;
    brandInput.delegate = self;
    barcodeInput.delegate = self;
    itemNameInput.delegate = self;

    [self initializeArrays];

    [self.activityIndicatorView stopAnimating];

}
Run Code Online (Sandbox Code Playgroud)

但是,当我部署它时,没有任何延迟,使activityIndi​​catorView无用.

我的问题是,为什么在我看来,viewDidLoad和之间存在"性能差异" viewDidAppear

objective-c ios

43
推荐指数
1
解决办法
5万
查看次数

标签 统计

ios ×1

objective-c ×1