//所谓这里的生命周期,指视图控制被加载后,首先调用的方法,其次调用的方法,到销毁时调用的方法
app
-(void)loadView;//view 出现以前 -(void)viewWillAppear:(BOOL)animated;//当view将要出现的时候 -(void)viewDidAppear:(BOOL)animated;//view 已经显示了 -(void)viewWillDisappear:(BOOL)animated;//view即将消失 -(void)viewDidDisappear:(BOOL)animated//view已经消失 - (void)viewDidLoad;//view出现 //受到内存警告 程序内存 不够的时候 会调用 这个方法 请检查程序内存是否泄漏 //有多是程序问题 占用内存太多 释放一些资源 若是释放以后 仍是有内存警告 //那就是 程序问题 //通常 程序 内存占用都在50M左右 有地图的可能会变大100左右 //模拟内存警告 点击 测试机 hardware -->S..M..W.. // - (void)didReceiveMemoryWarning;
一段代码:
ide
#import "RootViewController.h" #import "SecondViewController.h" #define kDebugMethod NSLog(@"%@", NSStringFromSelector(_cmd)) @interface RootViewController () @end @implementation RootViewController //当view nil为调用loadView -(void)loadView { [super loadView]; kDebugMethod; } //是当咱们的View加载完成 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [self createButton]; kDebugMethod; } //这个是当咱们的View将要出现的时候 -(void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; kDebugMethod; } //咱们view的已经显示了 -(void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; kDebugMethod; } //咱们的View将要消失的时候 -(void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; kDebugMethod; } //咱们的view已经消失了 -(void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; kDebugMethod; } //收到内存警告, //当咱们的程序内存吃紧的时候,会调用这个函数 //通常状况下,若是调了这个函数,请检查大家的程序的内存是否泄露,就有多是咱们程序问题,占用内存太多了 //释一些资源,若是释放一些没必要要的资源后,仍是有内存警告,那就是真的是咱们的程序有问题 - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. kDebugMethod; } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ -(void)createButton { UIButton *btn=[UIButton buttonWithType:UIButtonTypeContactAdd]; [btn setFrame:CGRectMake(50, 50, 80, 40)]; [btn addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchUpInside]; // int nCount=0; // if (nCount=5) { // // } [self.view addSubview:btn]; } -(void)onClick:(UIButton*)btn { SecondViewController *second=[[SecondViewController alloc] init]; //推动去第二个Contorller //第一个参数是咱们将推动去视图控制器的对象 //第二个是BOOL,表示咱们是否显示动画 //第三个参数是block,完成后,推动去以后 [self presentViewController:second animated:YES completion:^{ NSLog(@"已经进入到第二个视图控制器"); }]; [second release]; } @end
最后 再附上一张英文的图片解释函数