相关疑难解决方法(0)

-viewWillAppear:和-viewDidAppear:有什么区别?

-[UIViewController viewWillAppear:]和之间有什么区别-[UIViewController viewDidAppear:]

iphone ios

130
推荐指数
7
解决办法
7万
查看次数

viewDidLoad和viewDidAppear之间的区别

viewDidLoad和之间有什么区别viewDidAppear?什么样的初始化或自定义代码进入这些功能?

例如,presentModalViewController只有当存在viewDidAppear而不存在时才起作用viewDidLoad.

ios

83
推荐指数
2
解决办法
9万
查看次数

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 ×3

iphone ×1

objective-c ×1