欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS開發(fā)教程之UIView和UIViewController的生命周期詳解

 更新時間:2018年04月29日 09:29:11   作者:YungFan  
UIViewController是IOS程序中的一個重要組成部分,下面這篇文章主要給大家介紹了關(guān)于iOS開發(fā)教程之UIView和UIViewController的生命周期的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

iOS開發(fā)中,創(chuàng)建View常見的兩種方式一個是純代碼,一個是借助于XIB;創(chuàng)建ViewController常見的也有兩種方式一個是純代碼,一個是借助于StoryBoard。

通過交流我發(fā)現(xiàn)很多童鞋對這些概念都很模糊,于是通過實驗寫一篇博客供參考。

重寫View的如下方法

@implementation YFView

-(instancetype)init{
 
 self = [super init];
 
 NSLog(@"%s", __func__);
 
 return self;
}

-(instancetype)initWithFrame:(CGRect)frame{
 
 self = [super initWithFrame:(CGRect)frame];
 
 NSLog(@"%s", __func__);
 
 return self;
 
}

-(instancetype)initWithCoder:(NSCoder *)aDecoder{
 
 self = [super initWithCoder:aDecoder];
 
 NSLog(@"%s", __func__);
 
 return self;
 
}

-(void)awakeFromNib{
 
 [super awakeFromNib];
 
 NSLog(@"%s", __func__);
}


-(void)layoutSubviews{
 
 NSLog(@"%s", __func__);
 
}

@end

重寫ViewController的如下方法

@implementation YFViewController

-(void)loadView{
 
 NSLog(@"%s", __func__);
 
 [super loadView];
}

- (void)viewDidLoad {
 [super viewDidLoad];
 // Do any additional setup after loading the view.
 
 NSLog(@"%s", __func__);
 
 self.view.backgroundColor = [UIColor redColor];
}


-(void)viewDidAppear:(BOOL)animated{
 
 NSLog(@"%s", __func__);
 
 [super viewDidAppear:animated];
 
 
}

-(instancetype)init{
 
 self = [super init];
 
 NSLog(@"%s", __func__);
 
 return self;
}

-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
 
 self = [super initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil];
 
 NSLog(@"%s", __func__);
 
 return self;
 
}

-(instancetype)initWithCoder:(NSCoder *)aDecoder{
 
 self = [super initWithCoder:aDecoder];
 
 NSLog(@"%s", __func__);
 
 return self;
 
}

-(void)awakeFromNib{
 
 NSLog(@"%s", __func__);
 
 [super awakeFromNib];
}

@end

結(jié)論總結(jié)

如果控制器是直接通過代碼創(chuàng)建出來的,并且調(diào)用方法為[[YFViewController alloc]init]創(chuàng)建VC的生命周期為:

-[YFViewController initWithNibName:bundle:]
-[YFViewController init]
-[YFViewController loadView]
-[YFViewController viewDidLoad]
-[YFViewController viewDidAppear:]

如果創(chuàng)建控制器時勾選了XIB,那么調(diào)用方法為[[YFViewController alloc]init]創(chuàng)建VC時的生命周期為:

-[YFViewController initWithNibName:bundle:] 
-[YFViewController init]
-[YFViewController loadView]
-[YFViewController viewDidLoad]
-[YFViewController viewDidAppear:]

如果是通過SB創(chuàng)建控制器,那么VC的生命周期為:

-[ViewController initWithCoder:]
-[ViewController awakeFromNib]
-[ViewController loadView]
-[ViewController viewDidLoad]
-[ViewController viewDidAppear:]

如果純代碼創(chuàng)建UIView,調(diào)用方式為YFView *yfView = [[YFView alloc]init];那么它的生命周期為:

-[YFView initWithFrame:]
-[YFView init]
-[YFView layoutSubviews]

如果純代碼創(chuàng)建UIView,調(diào)用方式為YFView *yfView = [[YFView alloc]initWithFrame:[UIScreen mainScreen].bounds];那么它的生命周期為:

-[YFView initWithFrame:]
-[YFView layoutSubviews]

如果通過XIB創(chuàng)建UIView,調(diào)用方式為NSArray *array = [[NSBundle mainBundle]loadNibNamed:@"YFView" owner:nil options:nil];[array lastObject];那么它的生命周期為:

-[YFView initWithCoder:]
-[YFView awakeFromNib]
-[YFView layoutSubviews]

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • iOS常見的幾個修飾詞深入講解

    iOS常見的幾個修飾詞深入講解

    這篇文章主要給大家介紹了關(guān)于iOS常見的幾個修飾詞的相關(guān)資料,iOS修飾詞包括assign、weak、strong、retain、copy、nonatomic、atomic、readonly、readwrite,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-09-09
  • iOS UITextField最大字符數(shù)和字節(jié)數(shù)的限制詳解

    iOS UITextField最大字符數(shù)和字節(jié)數(shù)的限制詳解

    在開發(fā)中我們經(jīng)常遇到這樣的需求:在UITextField或者UITextView中限制用戶可以輸入的最大字符數(shù)。但在UITextView , UITextfield 中有很多坑,網(wǎng)上的方法也很多。但是并不是很全面吧,這里全面進(jìn)行了總結(jié),有需要的朋友們可以參考借鑒,下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • ios7中UIViewControllerBasedStatusBarAppearance作用詳解

    ios7中UIViewControllerBasedStatusBarAppearance作用詳解

    這篇文章主要介紹了 ios7中UIViewControllerBasedStatusBarAppearance作用詳解的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • 理解Objective-C的變量以及面相對象的繼承特性

    理解Objective-C的變量以及面相對象的繼承特性

    這篇文章主要介紹了理解Objective-C的變量以及面相對象的繼承特性,文中的所說的點語法即是'對象名.成員變量名'這種對變量的訪問,需要的朋友可以參考下
    2016-01-01
  • iOS性能優(yōu)化淺析

    iOS性能優(yōu)化淺析

    給大家通過理論和經(jīng)驗分析了IOS性能優(yōu)化各方面的問題,以及處理的對應(yīng)辦法,有需要的朋友參考下。
    2018-02-02
  • iOS實用教程之Https雙向認(rèn)證詳解

    iOS實用教程之Https雙向認(rèn)證詳解

    這篇文章主要給大家介紹了關(guān)于iOS中Https雙向認(rèn)證的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-05-05
  • iOS新浪微博、騰訊微博分享功能實例

    iOS新浪微博、騰訊微博分享功能實例

    這篇文章主要為大家詳細(xì)介紹了iOS新浪微博、騰訊微博分享功能實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • iOS中UIRefreshControl的基本使用詳解

    iOS中UIRefreshControl的基本使用詳解

    最近在應(yīng)用中用到UIRefreshControl,覺著有必要給大家總結(jié)介紹一下這個控件,所以下面這篇文章主要給大家介紹了關(guān)于iOS中UIRefreshControl的基本使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-04-04
  • iOS 導(dǎo)航欄無縫圓滑的隱藏 Navigationbar實例代碼

    iOS 導(dǎo)航欄無縫圓滑的隱藏 Navigationbar實例代碼

    本文通過實例代碼給大家介紹了iOS 導(dǎo)航欄無縫圓滑的隱藏 Navigationbar的效果,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-11-11
  • iOS 檢測網(wǎng)絡(luò)狀態(tài)的兩種方法

    iOS 檢測網(wǎng)絡(luò)狀態(tài)的兩種方法

    一般有Reachability和AFNetworking監(jiān)測兩種方式,都是第三方的框架,下文逐一詳細(xì)給大家講解,感興趣的朋友一起看看吧
    2016-10-10

最新評論