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;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容