Interface Builder是否使用-init方法初始化视图控制器?

Mus*_*afa 20 cocoa-touch interface-builder

我使用界面构建器设置了标签栏控制器,每个标签栏项链接到一个视图控制器(4个标签,4个视图控制器).我想知道Interface Builder是否使用-init方法来初始化视图控制器,因为显然这个方法没有被调用:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;
Run Code Online (Sandbox Code Playgroud)

......我想做一些初始化.我无法添加它,-viewDidLoad因为它在内存警告的情况下被召回.任何的想法?

Mar*_*ark 47

从a加载的对象*.(nib|xib)包括:

- (id)initWithCoder:(NSCoder *)inCoder;
Run Code Online (Sandbox Code Playgroud)

所以你可以覆盖它,或者如果在-initWithCoder:调用后进行设置不是你可以使用的问题:

- (void)awakeFromNib;
Run Code Online (Sandbox Code Playgroud)

来自NSNibAwaking协议.


小智 10

我也打算提initWithCoderVS awakeFromNib.

通常,我initWithCoder在为对象分配内存或设置值时会覆盖.在连接IBOutlet后需要进行一些设置时,请覆盖awakeFromNib.在此之前,IBOutlet实例变量与其他视图和控件之间没有连接.


Rya*_*end 6

听起来你想要实现-(void) awakeFromNib.

NSNibAwaking协议参考(需要ADC登录)