UIViewController的使用说明及其生命周期

 UIViewController视图控制器,主要作用:用于控制UI的展现,以及数据modelUI的交互

 使用注意事项:

 1controller视图控制器切换方法有两种

 1-1push方法,即 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated

 使用该方法时,直接将实例化后视图控制器直接进行切换,如:

NextUIViewController *vc = [[NextUIViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];

 返回上个视图时,使用方法:

 1)返回当前视图的上一个视图:

- (nullable UIViewController *)popViewControllerAnimated:(BOOL)animated;

 2)返回当前视图的前面的指定视图:

- (nullable NSArray<__kindof UIViewController *> *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;

 3)返回当前视图的根视图,即第一个视图:

- (nullable NSArray<__kindof UIViewController *> *)popToRootViewControllerAnimated:(BOOL)animated;

 如:

[self.navigationController popViewControllerAnimated:YES];

 1-2present方法,即

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion;<span style="font-family: Menlo; background-color: rgb(255, 255, 255);"> </span>

 使用该方法时,需要将实例化后视图控制器设置成导航控制器的根视图控制器,然后再进行切换,如:

NextUIViewController *vc = [[NextUIViewController alloc] init];
UINavigationController *navVC = [[UINavigationController alloc] initWithRootViewController:vc];
[self presentViewController:navVC animated:YES completion:NULL];

 返回上个视图时,使用方法:

- (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^ __nullable)(void))completion<span style="font-family: Menlo; background-color: rgb(255, 255, 255);"> </span>

 如:

[self dismissViewControllerAnimated:YES completion:nil];

 

 2、视图控制器切换后,如果是 push出来的,则下个视图控制器会自动设置其导航栏控制器左按钮,即返回按钮;如果是 present出来的,则下个视图控制器无导航栏控制器左按钮,需要用户自定义;

 

 3、不管是使用push,还是present方法,切换出来的视图控制器,都可以重新设置其导航栏控制器的左按钮,即返回按钮;且必须重新设置对应的返回上层视图的方法;

 

 4controller的生命周期

 4-1、第一个执行的方法,加载UI- (void)loadView { }

 4-2、第二个执行的方法,加载UI成功后调用:- (void)viewDidLoad { }

 4-3、第三个执行方法,UI即将显示时:- (void)viewWillAppear:(BOOL)animated { }

 4-4、第四个执行方法,UI已经显示时:- (void)viewDidAppear:(BOOL)animated { }

 4-5、第五个执行方法,UI即将消失时:- (void)viewWillDisappear:(BOOL)animated { }

 4-6、第六个执行方法,UI已经消失时:- (void)viewDidDisappear:(BOOL)animated { }

 4-7、最后执行方法,即视图控制器注销方法:- (void)dealloc { }

 该方法在接收到内存警告时会调用,且系统会自动处理内存释放:- (void)didReceiveMemoryWarning { }


 注意:可在模拟器中模拟内存警告,并调用 didReceiveMemoryWarning方法(模拟器simulator-菜单栏-hardware-simulate memory warning



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值