iOS 生命週期

2021-08-23 14:22:54 字數 1706 閱讀 7709

物件的生命週期一直是開發者所需要關心的,教授 cs193p 的老師 paul 也詳細的講述了 uiviewcontroller 的生命週期。為了記述這一過程,故作此文。由於 xcode 提供了純**和 storyboard(xib 同理)兩種布局 ui 的方式,因此初始化部分略有不同。

為了方便觀察,我建立了乙個 baseviewcontroller,繼承自原本的 uiviewcontroller,重寫其中的生命週期方法,並讓後續新的控制器繼承自該控制器,以便觀察。

output:
loadview 參考:  ios之深入了解控制器view的載入

注意:

如果控制器 a 被展示在另乙個控制器 b 的 popover 中,那麼控制器 b 不會呼叫該方法,直到控制器 a 清除。

output:willtransition(to:with:)

viewwilllayoutsubviews() - optional((67.5, 269.5, 240.0, 128.0))

viewdidlayoutsubviews() - optional((213.5, 123.5, 240.0, 128.0))

viewwilllayoutsubviews() - optional((213.5, 123.5, 240.0, 128.0))

viewdidlayoutsubviews() - optional((213.5, 123.5, 240.0, 128.0))

viewwilllayoutsubviews() - optional((213.5, 123.5, 240.0, 128.0))

viewdidlayoutsubviews() - optional((213.5, 123.5, 240.0, 128.0))

output:
class loopviewcontroller: uiviewcontroller 

override func viewdidload()

}

output:loadview()

viewdidload()

loadview()

viewdidload()

loadview()

viewdidload()

loadview()

viewdidload()

loadview()

IOS生命週期

uiviewcontroller的生命週期 關於viewdidunload 在發生記憶體警告的時候如果本檢視不是當前螢幕上正在顯示的檢視的話,viewdidunload將會被執行,本檢視的所有子檢視將被銷毀,以釋放記憶體,此時開發者需要手動對viewload viewdidload中建立的物件釋放記...

iOS 生命週期

在init方法中例項化必要的物件 遵從lazyload思想 init方法中初始化viewcontroller本身 當view需要被展示而它卻是nil時,viewcontroller會呼叫該方法。不要直接呼叫該方法。如果手工維護views,必須過載重寫該方法 如果使用ib維護views,必須不能過載重...

iOS 程式生命週期

狀態名解釋 not running 應用還沒啟動或者應用發生中斷 inactive 應用正在前台執行 不接收事件 active 應用正在前台執行 接收事件 background 應用處於後台執行 程式在後台而且能執行 大多數程式進入這個狀態後會在在這個狀態上停留一會。時間到之後會進入掛起狀態 sus...