视图控制器生命周期

//视图控制器:UIViewController
    //功能:1:管理一个界面中的所有子视图
    //2:管理所有的当前视图的(消息)事件函数
    //3:管理界面中的所有数据(源),使数据和界面分离管理
    //4:负责网络数据处理功能
    
    #import "VCRoot.h"
#import "VCSecond.h"

@interface VCRoot ()

@end

@implementation VCRoot

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

//当视图第一次“显示”的时候
//当视图被创建时,此函数被调用
//只能调用一次,相当于初始化函数
- (void)viewDidLoad
{
    //self.view ;
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    self.view.backgroundColor = [UIColor grayColor] ;
    
    UIButton* btn =[UIButton buttonWithType:UIButtonTypeRoundedRect] ;
    btn.frame = CGRectMake(100, 100, 120, 40) ;
    
    btn.titleLabel.font = [UIFont systemFontOfSize:24] ;
    
    [btn setTitle:@"切换界面" forState:UIControlStateNormal] ;
    //设置标题颜色
    [btn setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal] ;
    
    [btn addTarget:self action:@selector(pressBtn) forControlEvents:UIControlEventTouchUpInside] ;
    //将子视图添加到界面上
    [self.view addSubview:btn] ;
    
    //创建控制器二
    _vcSecond = [[VCSecond alloc] init] ;
    //设置动画风格
    //控制器一切换到控制器二时的动画
    //UIModalTransitionStyleCoverVertical
    //自下向上切换风格
    //UIModalTransitionStyleCrossDissolve
    //渐变风格
    //UIModalTransitionStyleFlipHorizontal
    //翻转风格
    //UIModalTransitionStylePartialCurl
    //部分翻页风格
    _vcSecond.modalTransitionStyle = UIModalTransitionStyleCoverVertical ;
}


-(void) viewWillAppear:(BOOL)animated
{
    NSLog(@"视图1即将显示!");
}

-(void) viewWillDisappear:(BOOL)animated
{
    NSLog(@"视图1即将消失!");
}

-(void) viewDidAppear:(BOOL)animated
{
    NSLog(@"视图1已经显示!");
}

-(void) viewDidDisappear:(BOOL)animated
{
    NSLog(@"视图1已经消失!");
}


-(void) pressBtn
{
   //VCSecond* _vcSecond = [[VCSecond alloc] init] ;
    
    //功能:从一个视图控制器切换到另外一个视图控制器
    //self:表示当前的视图控制器VCRoot
    //参数一:vcSecond表示即将切换到的视图控制器
    //参数二:是有使用动画效果
    //参数三:当切换动画结束后,调用的代码功能
    [self presentViewController:_vcSecond animated:YES completion:nil] ;
    
   // [_vcSecond release] ;
}

-(void) dealloc
{
    [_vcSecond release] ;
    [super dealloc] ;
}

#import "VCSecond.h"

@interface VCSecond ()

@end

@implementation VCSecond

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    //更改背景颜色
    self.view.backgroundColor = [UIColor redColor] ;
    
    NSLog(@"视图二被创建!");
}

//四个函数为视图控制器的显示消失函数
//每当视图控制器被显示和消失时,都会被调用

-(void) viewWillAppear:(BOOL)animated
{
    NSLog(@"视图二即将显示!");
}

-(void) viewWillDisappear:(BOOL)animated
{
    NSLog(@"-------------------------");
    NSLog(@"视图二即将消失!");
    
}

-(void) viewDidAppear:(BOOL)animated
{
    NSLog(@"视图二已经显示!");
    NSLog(@"------------------------");
}

-(void) viewDidDisappear:(BOOL)animated
{
    NSLog(@"视图已经消失!");
}


//点击屏幕空白处
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //将视图控制器对象消失掉
    //内存是否销毁,取决于是否还有其他对象引用
    //如果还有引用,不能销毁
    //如有没有对象引用,消失后会销毁内存
    //参数一:是否有动画
    //参数二:消失后的功能代码调用
    [self dismissViewControllerAnimated:YES completion:nil] ;
}


你可能感兴趣的:(视图控制器生命周期)