當手動加載視圖時,開發人員在初始化時保持控制權,我們選擇要調用的初始化程序,設置哪些變量等。如何通過故事板加載時初始化視圖?
當視圖從故事板segue加載時會發生什麼?初始化?應該在哪裏設置變量,我希望在視圖加載後可用?
請幫我理解這裏的順序。這裏創建的類的實例是如何創建的?我們如何介入並幫助設置它以滿足我們的喜好?
當手動加載視圖時,開發人員在初始化時保持控制權,我們選擇要調用的初始化程序,設置哪些變量等。如何通過故事板加載時初始化視圖?
當視圖從故事板segue加載時會發生什麼?初始化?應該在哪裏設置變量,我希望在視圖加載後可用?
請幫我理解這裏的順序。這裏創建的類的實例是如何創建的?我們如何介入並幫助設置它以滿足我們的喜好?
當從一個筆尖或故事板加載視圖時,它將調用-initWithCoder:
方法。與-initWithFrame:
類似,-initWithCoder:
是UIView的指定初始值設定項。如果您要爲UIView子類進行任何自定義初始化,則應確保這兩種方法都發生這種情況。一種常用的技術是添加一個通用的初始化方法,您可以從-initWithFrame:
和-initWithCoder:
中調用。有關更詳細的描述,請參見my answer至Custom view and implementing init method?。
注意,對於-initWithFrame:
的文檔解釋:
如果您使用Interface Builder來設計自己的界面,是不是 當您的視圖對象隨後從筆尖 文件加載調用此方法。重新創建nib文件中的對象,然後使用它們的initWithCoder:方法初始化 ,該方法修改視圖的屬性 以匹配存儲在nib文件中的屬性。