
init 方法:
初始化UIViewController,执行关键数据初始化操作。不要在此操作view,view在loadView: 方法中才初始化。
loadView 方法:
viewDidLoad 方法:
viewWillAppear 方法:
viewDidAppear 方法:
viewWillDisAppear 方法:
UIViewController对象的视图即将消失、被覆盖或是隐藏时调用。viewDidDisAppear 方法:
UIViewController对象的视图已经消失、被覆盖或是隐藏时调用。didReceiveMemoryWarning 方法:
dealloc 方法:
分为A和B两个视图。
A视图:
AViewController.h 文件:
- #import
- #import "BViewController.h"
-
- NS_ASSUME_NONNULL_BEGIN
-
- @interface AViewController : UIViewController
-
- @end
-
- NS_ASSUME_NONNULL_END
AViewController.m文件:
- #import "AViewController.h"
-
- @interface AViewController ()
-
- @end
-
- @implementation AViewController
-
- - (void) loadView {
- [super loadView];
-
- NSLog(@"AViewController loadView");
- }
-
- - (void)viewDidLoad {
- [super viewDidLoad];
- // Do any additional setup after loading the view.
- self.view.backgroundColor = [UIColor whiteColor];
-
- UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
- button.frame = CGRectMake(100, 100, 100, 50);
- button.center = self.view.center;
- [button setTitle:@"按键" forState:UIControlStateNormal];
- [button addTarget:self action:@selector(press:) forControlEvents:UIControlEventTouchUpInside];
-
- [self.view addSubview:button];
-
- NSLog(@"AViewController viewDidLoad");
- }
-
- - (void) viewWillAppear:(BOOL)animated {
- NSLog(@"AViewController viewWillAppear");
- }
-
- - (void) viewDidAppear:(BOOL)animated {
- NSLog(@"AViewController viewDidAppear");
- }
-
- - (void) viewWillDisappear:(BOOL)animated {
- NSLog(@"AViewController viewWillDisappear");
- }
-
- - (void) viewDidDisappear:(BOOL)animated {
- NSLog(@"AViewController viewDidDisappear");
- }
-
- - (void) didReceiveMemoryWarning {
- [super didReceiveMemoryWarning];
-
- NSLog(@"AViewController didReceiveMemoryWarning");
- }
-
- - (void) press:(UIButton*)sender {
- BViewController* bViewController = [[BViewController alloc] init];
-
- bViewController.modalPresentationStyle = UIModalPresentationFullScreen;
-
- NSLog(@"A->B");
-
- [self presentViewController:bViewController animated:YES completion:nil];
- }
-
- @end
BViewController.h文件:
- #import
-
- NS_ASSUME_NONNULL_BEGIN
-
- @interface BViewController : UIViewController
-
- @end
-
- NS_ASSUME_NONNULL_END
BViewController.m文件:
- #import "BViewController.h"
-
- @interface BViewController ()
-
- @end
-
- @implementation BViewController
-
- - (void) loadView {
- [super loadView];
-
- NSLog(@"BViewController loadView");
- }
-
- - (void)viewDidLoad {
- [super viewDidLoad];
- // Do any additional setup after loading the view.
- self.view.backgroundColor = [UIColor yellowColor];
-
- UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
- button.frame = CGRectMake(100, 100, 100, 50);
- button.center = self.view.center;
- [button setTitle:@"按键" forState:UIControlStateNormal];
- [button addTarget:self action:@selector(press:) forControlEvents:UIControlEventTouchUpInside];
-
- [self.view addSubview:button];
-
- NSLog(@"BViewController viewDidLoad");
- }
-
- - (void) viewWillAppear:(BOOL)animated {
- NSLog(@"BViewController viewWillAppear");
- }
-
- - (void) viewDidAppear:(BOOL)animated {
- NSLog(@"BViewController viewDidAppear");
- }
-
- - (void) viewWillDisappear:(BOOL)animated {
- NSLog(@"BViewController viewWillDisappear");
- }
-
- - (void) viewDidDisappear:(BOOL)animated {
- NSLog(@"BViewController viewDidDisappear");
- }
-
- - (void) press:(UIButton*)sender {
- NSLog(@"B->A");
-
- [self dismissViewControllerAnimated:YES completion:nil];
- }
-
- @end
运行结果:
- 2022-09-18 18:34:13.549033+0800 ViewController[25007:24031989] AViewController loadView
- 2022-09-18 18:34:13.554447+0800 ViewController[25007:24031989] AViewController viewDidLoad
- 2022-09-18 18:34:13.563963+0800 ViewController[25007:24031989] AViewController viewWillAppear
- 2022-09-18 18:34:13.697255+0800 ViewController[25007:24031989] AViewController viewDidAppear
- 2022-09-18 18:34:16.421472+0800 ViewController[25007:24031989] A->B
- 2022-09-18 18:34:16.422527+0800 ViewController[25007:24031989] BViewController loadView
- 2022-09-18 18:34:16.423160+0800 ViewController[25007:24031989] BViewController viewDidLoad
- 2022-09-18 18:34:16.428482+0800 ViewController[25007:24031989] AViewController viewWillDisappear
- 2022-09-18 18:34:16.428732+0800 ViewController[25007:24031989] BViewController viewWillAppear
- 2022-09-18 18:34:16.933891+0800 ViewController[25007:24031989] BViewController viewDidAppear
- 2022-09-18 18:34:16.934169+0800 ViewController[25007:24031989] AViewController viewDidDisappear
- 2022-09-18 18:34:31.586055+0800 ViewController[25007:24031989] B->A
- 2022-09-18 18:34:31.587979+0800 ViewController[25007:24031989] BViewController viewWillDisappear
- 2022-09-18 18:34:31.588890+0800 ViewController[25007:24031989] AViewController viewWillAppear
- 2022-09-18 18:34:32.093543+0800 ViewController[25007:24031989] AViewController viewDidAppear
- 2022-09-18 18:34:32.093834+0800 ViewController[25007:24031989] BViewController viewDidDisappear
git: https://github.com/sssxxd/ocstudy/tree/main/OC%20study/ViewController