I’m trying to do something a bit elaborate, but something that should be possible. So here is a challenge for all you experts out there (this forum is a pack of a lot of you guys 🙂 ).

I’m creating a Questionnaire “component”, which I want to load on a NavigationContoller (my QuestionManagerViewController). The “component” is an “empty” UIViewController, which can load different views depending on the question that needs to be answered.

The way I’m doing it is:

  1. Create Question1View object as a UIView subclass, defining some IBOutlets.
  2. Create (using Interface Builder) the Question1View.xib (HERE IS WHERE MY PROBLEM PROBABLY IS). I set both the UIViewController and the UIView to be of class Question1View.
  3. I link the outlets with the view’s component (using IB).
  4. I override the initWithNib of my QuestionManagerViewController to look like this:

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
        if (self = [super initWithNibName:@"Question1View" bundle:nibBundleOrNil]) {
            // Custom initialization
        }
        return self;
    }
    

When I run the code, I’m getting this error:

2009-05-14 15:05:37.152 iMobiDines[17148:20b] *** Terminating app due to uncaught exception ‘NSInternalInconsistencyException‘, reason: ‘-[UIViewController _loadViewFromNibNamed:bundle:] loaded the “Question1View” nib but the view outlet was not set.’

I’m sure there is a way to load the view using the nib file, without needing to create a viewController class.

24 Answers
24

Leave a Reply

Your email address will not be published. Required fields are marked *