 <p>You can have each tab be a real view controller with nib and everything. The only catch is that you must forward on the standard view controller calls you want to receive (viewWillAppear, etc) but it makes the coding much cleaner since you code just as you would for any other view (although for a smaller space). </p> <p>You call each controllers "view" property to get out the view, which you add as a subview of a container view you have under the tabs.</p>