iOS-UIView-生命週期

一.生命週期

//所謂這裏的生命週期,指視圖控制被加載後,首先調用的方法,其次調用的方法,到銷燬時調用的方法
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;



二.模態視圖控制器切換Modal
是當前視圖控制器,彈出了模態視圖控制器

一段代碼:
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

最後 再附上一張英文的圖片解釋函數

相關文章
相關標籤/搜索