您的位置:首页 > 产品设计 > UI/UE

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

2016-06-25 21:55 363 查看
 UIViewController视图控制器,主要作用:用于控制UI的展现,以及数据model与UI的交互

 使用注意事项:

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

 1-1、push方法,即 - (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-2、present方法,即- (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方法,切换出来的视图控制器,都可以重新设置其导航栏控制器的左按钮,即返回按钮;且必须重新设置对应的返回上层视图的方法;

 

 4、controller的生命周期

 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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: