亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

iOS開(kāi)發(fā)學(xué)習(xí) ViewController使用示例詳解

 更新時(shí)間:2022年10月12日 09:13:13   作者:圣騎士Wind  
這篇文章主要為大家介紹了iOS開(kāi)發(fā)學(xué)習(xí) ViewController使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

iOS ViewController

寫(xiě)UIKit的代碼, ViewController是離不開(kāi)的. 本文試圖講講它的基本知識(shí), 不是很深入且有點(diǎn)雜亂, 供初級(jí)選手和跨技術(shù)棧同學(xué)參考.

What is a View Controller

iOS中的View Controller非常像Android中的Activity.

它負(fù)責(zé)用戶界面的展示, 有一些生命周期的回調(diào)函數(shù), 還和界面切換有關(guān), 一個(gè)app中可以有一個(gè)或多個(gè)ViewController.

每一個(gè)ViewController都有一個(gè)single root view, 包含此ViewController的所有內(nèi)容, 在頁(yè)面上的所有View都會(huì)被加入到以這個(gè)root view為根的樹(shù)形結(jié)構(gòu)中去.

ViewController有一個(gè)view屬性, 代表最后返回的頁(yè)面.

ViewController擁有所有的View, 管理和這些View相關(guān)的交互, 是離用戶最近的第一層代碼.

如何定義ViewController.

一般要繼承UIViewController.

如果你的頁(yè)面主要是tableview或者collectionview也可以繼承UITableViewControllerUICollectionViewController.

ViewController的類型

ViewController的類型有兩種:

  • Content view controller: 管理一塊view的內(nèi)容. (大多數(shù)的ViewController都是這一種.)
  • Container view controller: 作為一個(gè)container, 管理其中的child view controllers. 把每個(gè)child view controller的root view顯示在container的view范圍內(nèi). 可以每次只展示一個(gè)child, 也可以多個(gè)同時(shí)展示. UIKit中的UINavigationController, UITabBarController, UISplitViewController, UIPageViewController都是這種類型, 它們多數(shù)是為了不同界面之間的導(dǎo)航服務(wù)的.

生命周期回調(diào)

Controller的回調(diào)中最常用的是:

  • loadView(): 用來(lái)設(shè)置根view屬性, add views等.
  • viewDidLoad(), 可以用來(lái)做一些初始化的工作, 比如加載數(shù)據(jù), add和remove views, 設(shè)置constraints等.

其他的回調(diào)方法名字也非常直白:

  • viewWillAppear(): view繪制之前.
  • viewDidAppear(): view繪制出來(lái)了.
  • viewWillDisappear(): view馬上要消失了.
  • viewDidDisappear(): 已經(jīng)消失了.

ViewController的職責(zé)

ViewController即MVC(Model View Controller)模式中的Controller.

如何管理View和數(shù)據(jù)的分離和交互是開(kāi)發(fā)者自己的職責(zé).

在簡(jiǎn)單的demo里, 如果你愿意, 一個(gè)ViewController就可以寫(xiě)完所有代碼.

和Android一樣, 我們會(huì)盡量把邏輯從ViewController(Activity)中拆分出去, 寫(xiě)出更加職責(zé)分明并且容易被測(cè)試的代碼.

會(huì)有一些流行的模式, 比如MVVM什么的, 這里不展開(kāi)講了.

Scene, Window, ViewController

每一個(gè)Window都有一個(gè)root view controller, 是window最開(kāi)始的內(nèi)容.

展示一個(gè)新的view controller將會(huì)改變窗口內(nèi)容.

它們之間的關(guān)系如圖:

圖片來(lái)源

總結(jié)

iOS中的View Controller作為MVC模式中的Controller, 可以類比Android中的Activity:

  • view屬性返回頁(yè)面內(nèi)容.
  • 有一些生命周期回調(diào).
  • 有一些各種各樣的pattern為了讓它承擔(dān)的職責(zé)盡量得少.

(其實(shí)后端代碼提供API的第一層也叫Controller, 所以有沒(méi)有可能, 最開(kāi)始設(shè)計(jì)UIKit的人是一個(gè)之前寫(xiě)后端的?)

References

以上就是iOS開(kāi)發(fā)學(xué)習(xí) ViewController使用示例詳解的詳細(xì)內(nèi)容,更多關(guān)于iOS開(kāi)發(fā)ViewControlle使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Unity3d發(fā)布IOS9應(yīng)用時(shí)出現(xiàn)中文亂碼的解決方法

    Unity3d發(fā)布IOS9應(yīng)用時(shí)出現(xiàn)中文亂碼的解決方法

    這里給大家分享的是使用UNity3d發(fā)布IOS9應(yīng)用的時(shí)候,遇到出現(xiàn)中文亂碼的現(xiàn)象的解決方法,核心內(nèi)容非常簡(jiǎn)單就是批量修改NGUI的label字體,下面把代碼奉上。
    2015-10-10
  • iOS學(xué)習(xí)教程之UIView中坐標(biāo)轉(zhuǎn)換詳解

    iOS學(xué)習(xí)教程之UIView中坐標(biāo)轉(zhuǎn)換詳解

    這篇文章主要給大家介紹了關(guān)于iOS UIView中坐標(biāo)轉(zhuǎn)換的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)跟著小編一起看看吧。
    2017-05-05
  • iOS Runtime詳解(新手也看得懂)

    iOS Runtime詳解(新手也看得懂)

    這篇文章主要給大家介紹了關(guān)于iOS Runtime的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • IOS 的彈性滾動(dòng)解決方案

    IOS 的彈性滾動(dòng)解決方案

    所謂彈性滾動(dòng)就是指在翻動(dòng)長(zhǎng)頁(yè)面手指離開(kāi)時(shí),由慢到塊,由快到慢的過(guò)度。這篇文章主要介紹了IOS 的彈性滾動(dòng)解決方案,需要的朋友可以參考下
    2016-10-10
  • iOS基于CATransition實(shí)現(xiàn)翻頁(yè)、旋轉(zhuǎn)等動(dòng)畫(huà)效果

    iOS基于CATransition實(shí)現(xiàn)翻頁(yè)、旋轉(zhuǎn)等動(dòng)畫(huà)效果

    這篇文章主要為大家詳細(xì)介紹了iOS基于CATransition實(shí)現(xiàn)翻頁(yè)、旋轉(zhuǎn)等動(dòng)畫(huà)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Mac OS自帶了apache基本用法總結(jié)

    Mac OS自帶了apache基本用法總結(jié)

    這篇文章主要介紹了Mac OS自帶了apache基本用法總結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • iOS CoreTelephony 實(shí)現(xiàn)監(jiān)聽(tīng)通話狀態(tài)

    iOS CoreTelephony 實(shí)現(xiàn)監(jiān)聽(tīng)通話狀態(tài)

    這篇文章主要介紹了iOS CoreTelephony 實(shí)現(xiàn)監(jiān)聽(tīng)通話狀態(tài) 的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • 實(shí)例講解iOS應(yīng)用的設(shè)計(jì)模式開(kāi)發(fā)中的Visitor訪問(wèn)者模式

    實(shí)例講解iOS應(yīng)用的設(shè)計(jì)模式開(kāi)發(fā)中的Visitor訪問(wèn)者模式

    這篇文章主要介紹了iOS應(yīng)用的設(shè)計(jì)模式開(kāi)發(fā)中的Visitor訪問(wèn)者模式的實(shí)例,示例代碼為傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2016-03-03
  • IOS開(kāi)發(fā)相冊(cè)圖片多選和刪除的功能

    IOS開(kāi)發(fā)相冊(cè)圖片多選和刪除的功能

    之前小編有和大家分享過(guò)一篇關(guān)于從相冊(cè)選取單張照片的文章,那么下面這篇文章跟大家分享下如何相冊(cè)多圖選擇和刪除,以及包括拍照功能,有需要的可以參考學(xué)習(xí),下面來(lái)一起看看吧。
    2016-09-09
  • IOS開(kāi)發(fā)第三方語(yǔ)音-微信語(yǔ)音

    IOS開(kāi)發(fā)第三方語(yǔ)音-微信語(yǔ)音

    微信語(yǔ)音開(kāi)放平臺(tái)致力于為開(kāi)發(fā)者提供免費(fèi)的語(yǔ)音技術(shù),目前已經(jīng)開(kāi)放的語(yǔ)音技術(shù)包括在線語(yǔ)音識(shí)別、在線語(yǔ)音合成等,下面通過(guò)本篇文章給大家介紹IOS開(kāi)發(fā)第三方語(yǔ)言-微信語(yǔ)言,需要的朋友可以一起來(lái)學(xué)習(xí)下
    2015-08-08

最新評(píng)論