最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

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

通過(guò)交流我發(fā)現(xiàn)很多童鞋對(duì)這些概念都很模糊,于是通過(guò)實(shí)驗(yà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é)

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

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

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

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

如果是通過(guò)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]

如果通過(guò)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é)

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

相關(guān)文章

  • 如何利用FutureBuilder提高開發(fā)效率

    如何利用FutureBuilder提高開發(fā)效率

    這篇文章主要給大家介紹了關(guān)于如何利用FutureBuilder提高開發(fā)效率的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • iOS9開放的新API--Spotlight使用指南

    iOS9開放的新API--Spotlight使用指南

    作為蘋果iOS9的重要特性之一,Spotlight搜索如今重新回到主界面最左側(cè)(同樣支持主界面下滑呼出),通過(guò)API的支持,還帶來(lái)了全新的Universal Search通用搜索功能,除了網(wǎng)絡(luò)以及系統(tǒng)本身內(nèi)容之外,還能直接搜索第三方應(yīng)用內(nèi)的相關(guān)內(nèi)容。下面我們就來(lái)詳細(xì)研究下Spotlight
    2015-11-11
  • ios 貝塞爾曲線切割圓角的方法

    ios 貝塞爾曲線切割圓角的方法

    本篇文章主要介紹了ios 貝塞爾曲線切割圓角的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • iOS給密碼進(jìn)行加密的方法

    iOS給密碼進(jìn)行加密的方法

    這篇文章主要介紹了iOS給密碼進(jìn)行加密的方法,需要的朋友可以參考下
    2017-06-06
  • IOS開發(fā)之手勢(shì)響應(yīng)事件優(yōu)先級(jí)的實(shí)例詳解

    IOS開發(fā)之手勢(shì)響應(yīng)事件優(yōu)先級(jí)的實(shí)例詳解

    這篇文章主要介紹了IOS開發(fā)之手勢(shì)響應(yīng)事件優(yōu)先級(jí)的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文大家能夠掌握手勢(shì)響應(yīng)優(yōu)先級(jí)的使用方法,需要的朋友可以參考下
    2017-09-09
  • 教你如何解決XCODE升級(jí)后插件不能用問(wèn)題

    教你如何解決XCODE升級(jí)后插件不能用問(wèn)題

    Xcode 每次更新有個(gè)很頭疼的問(wèn)題,就是插件都會(huì)失效,要重裝。 不得不說(shuō)好多插件還是非常方便能提高效率。那么如何來(lái)解決這個(gè)問(wèn)題呢,今天我們就來(lái)探討下。
    2015-11-11
  • iOS通過(guò)代理逆向傳值的方式詳解

    iOS通過(guò)代理逆向傳值的方式詳解

    在iOS開發(fā)中傳值是幾乎每個(gè)App都會(huì)用到的,對(duì)于傳統(tǒng)的順向傳值應(yīng)該說(shuō)是比較簡(jiǎn)單的,但是逆向傳值往往會(huì)用到代理模式來(lái)實(shí)現(xiàn),很多同學(xué)在這一塊有迷惑,迷惑的不是怎么逆向傳值,而是不理解代理模式,下面這篇文章就給大家分析一下iOS通過(guò)代理逆向傳值的方式。
    2016-12-12
  • iOS設(shè)置圓角的三種方法

    iOS設(shè)置圓角的三種方法

    這篇文章主要為大家詳細(xì)介紹了iOS設(shè)置圓角的三種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • iOS之基于FreeStreamer的簡(jiǎn)單音樂(lè)播放器示例

    iOS之基于FreeStreamer的簡(jiǎn)單音樂(lè)播放器示例

    這篇文章主要介紹了iOS之基于FreeStreamer的簡(jiǎn)單音樂(lè)播放器示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • iOS開發(fā)中用imageIO漸進(jìn)加載圖片及獲取exif的方法

    iOS開發(fā)中用imageIO漸進(jìn)加載圖片及獲取exif的方法

    這篇文章主要介紹了iOS開發(fā)中中用imageIO漸進(jìn)加載圖片及獲取exif的方法,代碼演示為傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-09-09

最新評(píng)論

牟定县| 霞浦县| 济源市| 湖南省| 临潭县| 东兴市| 东明县| 隆子县| 泽普县| 安阳市| 泰顺县| 荥经县| 临桂县| 杭锦旗| 大悟县| 华阴市| 阳原县| 汕尾市| 沈丘县| 广宁县| 武定县| 陆良县| 邮箱| 沭阳县| 新乐市| 利川市| 桦南县| 奉化市| 五家渠市| 偏关县| 手游| 蕉岭县| 寻乌县| 锦州市| 新巴尔虎右旗| 桐庐县| 澄城县| 奉贤区| 南涧| 玉树县| 深圳市|