O'Reilly logo

Programming iOS 4 by Matt Neuburg

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Making and Loading a Nib

Nib files other than the main nib file must be loaded explicitly as the app runs. This can happen semiautomatically through the instantiation of an object that incorporates nib-loading behavior, such as a UIViewController (Chapter 19); or it can happen completely manually, through explicit nib-loading code that you write.

Let’s illustrate nib-loading code. To do so, we’ll need a second nib file in our project. We’ll also need an instance to act as the nib’s owner. To illustrate the procedure fully, we’ll start by creating a class whose sole purpose is to be instantiated so that this instance can act as the owner of the nib file as it loads:

  1. In the Empty Window project in Xcode, choose File → New → New File. The “Choose a template” dialog for files appears.
  2. At the left of the dialog, under iOS (not Mac OS X!) select Cocoa Touch, and select Objective-C Class in the main part of the dialog. Click Next.
  3. The dialog now offers you a chance to specify what superclass the new class should be a subclass of. Make sure this is NSObject. Click Next.
  4. Name the file MyClass; make sure you’re saving into the Empty Window project folder, that the group is Empty Window, and that the target is Empty Window (and checked). Click Save.

We’ve now created files MyClass.h and MyClass.m declaring a class called MyClass. Next, we’ll make the nib:

  1. Choose File → New → New File.
  2. At the left of the dialog, under iOS, choose User Interface, and select View in the main part of the dialog. ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required