[英]How to properly initialize ViewController programmatically? loadView() vs init(nibName: nil, bundle: nil)
[英]loadView Vs init method
請告訴我init和loadView
方法被調用的時間。 據我所知,初始化視圖時只調用一次init方法,並且在加載視圖的任何時候調用loadView
。 因此,即使您在視圖堆棧中推送新視圖然后彈出它,也應該調用加速視圖的loadView
。 但是當我在調試模式下運行我的代碼時,無論我加載相同的屏幕多少次,這兩種方法都被調用一次。 如果我錯過了什么,請告訴我。
你是對的:)在實例化ViewController對象時調用init方法。 每次ViewController將其視圖加載到內存時,都會調用loadView方法。 這可能發生在第一次顯示視圖之前,或者應該顯示第二次,第三次......時間,但之前已從內存中刪除。 (如果你的應用程序內存不足,可能會發生這種情況。)如果你想在每次視圖可見時執行一些代碼,你應該看一下方法viewWillAppear / viewWillDisappear / viewDidAppear / viewDidDisappear。
訪問視圖控制器的view
屬性時調用loadView
,它是nil
。
如果視圖已被卸載(已為內存目的調用viewDidUnload
),則將再次調用loadView
。 如果不是,它將不會被調用。
你想要的是viewWillAppear:
或viewDidAppear:
.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.