iOS-UIView-生命周期

一.生命周期

//所谓这里的生命周期,指视图控制被加载后,首先调用的方法,其次调用的方法,到销毁时调用的方法

-(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;
205257_cUJA_2429434.png



二.模态视图控制器切换Modal
是当前视图控制器,弹出了模态视图控制器

一段代码:

#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

最后 再附上一张英文的图片解释

205743_y7iQ_2429434.jpg

转载于:https://my.oschina.net/rainwz/blog/494158

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值