用Xcode的模板加入UIViewController sub class时,勾选with xib for interface项会随之一起生成三个后缀名不同(.h .m .xib)的同名文件。
之后在工程项目中若是用这个自定义的UIViewController,可以采用以下两种方式定义:
CustomViewController *customViewController = [[CustomViewController alloc] initWithNibName:nil bundle:nil];
CustomViewController *customViewController = [[CustomViewController alloc] init];
因为相应的xib文件是与自定义的视图控制器同名的,所以都能够正确加载。即使是简单初始化init或是给initWithNibName:方法传参数nil都是可行的。
但是如果xib文件名与其类的名字不同,则一定要显式提供xib正确的文件名。
牢记:通过Nib文件加载viewcontroller的各种UI控件时时,在viewDidLoad函数里,viewController的控件才能使用。在viewcontroller的构造函数里,nib里的控件都还没有完成链接构造呢。