How to load a UIView from a NIB?

Winder picture Winder · Apr 15, 2010 · Viewed 16.3k times · Source

I have been using UIViewControllers and initWithNibName with much success, basically using them as a convenient way to design the view with Interface Builder. Unfortunately I have built a hierarchy of views before noticing this line in the UIViewController documentation:

Note: You should not use view controllers to manage views that fill only a part of their window

My question is this: Having a very simple NIB that only has a UIView in addition to the default First Responder and Owning Object, what is the simplest way to load the UIView into my code?

I have not been able to get loadNibNamed:owner:options: to work at this point, but suspect the answer will involve it somehow.

Answer

Ole Begemann picture Ole Begemann · Apr 15, 2010

Yes, just call

[[NSBundle mainBundle] loadNibNamed:@"viewNib" owner:self options:nil];

You normally do this from the view controller you have set as File's Owner in the NIB. That way, you can declare an outlet for the view in the view controller which will automatically get connected when you load the NIB file. You don't even have to work with the return value of the method in this case.