2-init 方法總結

一、系統調用

1.純代碼系統調用

initWithFrame

2. 使用 Storyboard 和 Xib 加載時系統調用

initWithCoder 從文件實例化時調用
awakeFromNib 設置控件 可以保證所有的連線等操作生效,不需要調用super

二、手動調用

1. 加載 storyboard

// 實例化 UIStoryboard 對象
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"KMHTableViewController" bundle:nil];
// 從 storyboard 中實例化控制器
UIViewController *VC = [storyboard instantiateViewControllerWithIdentifier:@"ID"];

2. 加載 xib

initWithNibName

  • File.s Owner 的 Class 設置為自定義控制器類型
  • 延遲加載

loadNibNamed

  • File.s Owner 的 Class 的類為NSOjbect
  • 即時加載

UINib

// 獲取UINib對象
UINib* nib = [UINib nibWithNibName:@"AppCell"bundle:nil];
// 取出cell對象Owner 多視圖控制器使用
AppCell *cell = [nib instantiateWithOwner:nil options:nil].lastObject;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容