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

iOS開發(fā)學習 ViewController使用示例詳解

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

iOS ViewController

寫UIKit的代碼, ViewController是離不開的. 本文試圖講講它的基本知識, 不是很深入且有點雜亂, 供初級選手和跨技術棧同學參考.

What is a View Controller

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

它負責用戶界面的展示, 有一些生命周期的回調函數(shù), 還和界面切換有關, 一個app中可以有一個或多個ViewController.

每一個ViewController都有一個single root view, 包含此ViewController的所有內容, 在頁面上的所有View都會被加入到以這個root view為根的樹形結構中去.

ViewController有一個view屬性, 代表最后返回的頁面.

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

如何定義ViewController.

一般要繼承UIViewController.

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

ViewController的類型

ViewController的類型有兩種:

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

生命周期回調

Controller的回調中最常用的是:

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

其他的回調方法名字也非常直白:

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

ViewController的職責

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

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

在簡單的demo里, 如果你愿意, 一個ViewController就可以寫完所有代碼.

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

會有一些流行的模式, 比如MVVM什么的, 這里不展開講了.

Scene, Window, ViewController

每一個Window都有一個root view controller, 是window最開始的內容.

展示一個新的view controller將會改變窗口內容.

它們之間的關系如圖:

圖片來源

總結

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

  • view屬性返回頁面內容.
  • 有一些生命周期回調.
  • 有一些各種各樣的pattern為了讓它承擔的職責盡量得少.

(其實后端代碼提供API的第一層也叫Controller, 所以有沒有可能, 最開始設計UIKit的人是一個之前寫后端的?)

References

以上就是iOS開發(fā)學習 ViewController使用示例詳解的詳細內容,更多關于iOS開發(fā)ViewControlle使用的資料請關注腳本之家其它相關文章!

相關文章

最新評論

津市市| 海晏县| 东山县| 陈巴尔虎旗| 义乌市| 英山县| 舞钢市| 屏东市| 平顶山市| 潮州市| 汾阳市| 建水县| 郴州市| 吉林市| 津市市| 阿拉善左旗| 内黄县| 广宗县| 连平县| 尼玛县| 蒙山县| 独山县| 安西县| 荆州市| 许昌市| 阳西县| 兴文县| 尼木县| 新和县| 抚宁县| 交口县| 高台县| 棋牌| 宽甸| 衡水市| 曲麻莱县| 娱乐| 平江县| 宣化县| 大新县| 社会|