控制器的生命周期

2020-04-08  本文已影响0人  若水water

首先创建控制器用到以下方法:

多个控制器跳转
控制器A push 控制器 B
loadview() 和 viewDidLoad()
- (void)buttonClick {
    NextViewController *next = [[NextViewController alloc]init];
    next.view.backgroundColor = UIColor.yellowColor;
    next.name = @"123";
   [self.navigationController pushViewController:next animated:YES];
}

然后在B的loadview方法中 添加如下代码:

- (void)loadView {
    UIView *view = [[UIView alloc]initWithFrame:UIScreen.mainScreen.bounds];
    view.backgroundColor = UIColor.redColor;
    self.view = view;
}

B的 viewDidload中添加如下代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = UIColor.blueColor;
}

猜想:最后B控制器的View的背景颜色是什么?
其实最终的颜色是UIColor.yellowColor。黄色。
因为在A中先调用了next.view.backgroundColor = UIColor.yellowColor;访问了B的View的get方法,所以会先调用 B->loadview 创建View,接着调用B->viewDidload ,之后拿到View ,再设置颜色为UIColor.yellowColor。所以最后呈现的颜色是黄色。

viewWillLayoutSubviews

当view的子视图即将布局时,此方法会被调用,触发的条件是:

参考链接:
https://www.jianshu.com/u/00c07610db8e

上一篇 下一篇

猜你喜欢

热点阅读