零基础iOS开发学习日记-modal跳转与视图生命周期

开头

界面跳转-modal

  • modal方式跳转,针对前后跳转的界面没有任何联系
  • nav的跳转请看
  • 跳转
- (void)btnClick {
    testViewController *vc = [testViewController new];
    //全屏弹出
    vc.modalPresentationStyle = UIModalPresentationFullScreen;
    [self presentViewController:vc animated:YES completion:nil];
}
复制代码
  • 消失
- (void)back {
    [self dismissViewControllerAnimated:NO completion:nil];
}
复制代码

视图生命周期

系统相关函数

//加载
- (void)loadView {
    [super loadView];
    NSLog(@"ViewController - loadView");
}
//已经加载
- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"ViewController - viewDidLoad");
}
//将要出现
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    NSLog(@"ViewController - viewWillAppear");
}
//已经出现
- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    NSLog(@"ViewController - viewDidAppear");
}
//将要消失
- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    NSLog(@"ViewController - viewWillDisappear");
}
//已经消失
- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    NSLog(@"ViewController - viewDidDisappear");
}
复制代码

界面出现的顺序

ViewController - loadView
ViewController - viewDidLoad
ViewController - viewWillAppear
ViewController - viewDidAppear
复制代码

界面切换的顺序

testViewController - loadView
testViewController - viewDidLoad
ViewController - viewWillDisappear
testViewController - viewWillAppear
testViewController - viewDidAppear
ViewController - viewDidDisappear
复制代码

界面跳回的顺序

testViewController - viewWillDisappear
ViewController - viewWillAppear
ViewController - viewDidAppear
testViewController - viewDidDisappear
testViewController - dealloc
复制代码

实际使用

  • 我在实际开发中,最常操作的还是在loadViewviewDidLoad
  • loadView是在控制器的view为nil的时候加载的,也就是说,当你需要更换控制器的根view时,可以在这个函数中写,而且不需要调用super的方法
  • 那么,控件加载一般是写在viewDidLoad

总结

  1. 界面跳转就好比叠盘子,一个个叠上去,最下面的会一直被保存,而当上面的界面被撤掉后,则直接被销毁
  2. 在整个界面显示的过程中,数据的加载和显示,其实是分开的
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享