iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 4
0
Mobile Development

IOS 菜菜菜鳥30天挑戰系列 第 4

IOS 菜菜菜鳥30天挑戰 Day-4 來介紹一下生命週期!

  • 分享至 

  • xImage
  •  

說到寫swift就不得不提一下我們很常看到的這段程式

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

那他到底是什麼呢/images/emoticon/emoticon06.gif
就讓我娓娓道來吧

首先這段程式代表的是生命週期的其中一部分
他其實就是你在進入app的時候第一個去載入的方法
view controller被載入記憶體之後就會呼叫他
需要注意的是他只會被呼叫一次
簡單來說我們要對初始化的東西做更動修改在這邊去做動作就對了

我再介紹一個程式碼名為loadView

    override func loadView() {
        super.loadView()
    }

這段程式碼會在viewDidLoad前執行,是視圖初始化的意思,老實說自己並不是很常用這一段程式所以不了解他,但經過一番調查原來我們本身不應該直接調用它,而是由系統自行調用。它本身會生成一個view,並會為你的view controller的view屬性賦值。

接下來我要介紹的是viewWillAppear

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
    }

這段程式會在viewdidload後執行,顧名思義就是畫面即將出現的意思
你可以在畫面即將展示的時候對裡面的內容做調整,像是去對狀態欄位的狀態做修改之類的。

那還有一個跟viewDidLoad有點像的程式就是viewDidAppear

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
    }

他們最大的不同點就是viewDidLoad在生命週期中是只會被載入一次,而它是可以被無限調用的
viewDidAppear意思就是試圖完成呈現,我們可以對已經呈現的畫面做修改,而我通常會用這一段程式去更新我的畫面。

下面還有兩個程式分別是viewWillDisappear和viewDidDisappear

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
    }
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
    }

他們分別是畫面即將消失和換面已經消失
這兩段其實我也不常用(應該說我不會特別呼叫他們去做什麼東西的修改),但其實當我們在跳轉頁面的時候他們就會觸發。


上一篇
IOS 菜菜菜鳥30天挑戰 Day-3 在Xcode中創建第一個專案吧!
下一篇
IOS 菜菜菜鳥30天挑戰 Day-5 來談談基本型別
系列文
IOS 菜菜菜鳥30天挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言