I have setup tab bar controller using interface builder, and each tab bar item is linked to a view controller (4 tabs, 4 view controllers). I want to know if Interface Builder uses an -init
method to initialize the view controller because apparently this method does not get called:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;
... and I want to do some initializations. I can't add that to -viewDidLoad
since it is recalled in case of memory warning. Any idea?
I was also going to mention
initWithCoder
vsawakeFromNib
.In general, I override
initWithCoder
when allocating memory for the object or setting values. When you need to do some setup after the IBOutlets are connected, then overrideawakeFromNib
. Until then, IBOutlet instance variables to other views and controls are not connected.Sounds like you want to implement
-(void) awakeFromNib
.NSNibAwaking Protocol Reference (requires ADC login)
Objects loaded from a
*.(nib|xib)
are inited with:So you could override that or if doing your setup after
-initWithCoder:
is called is not a problem you could use:from the NSNibAwaking protocol.