title: iPhone subview design (UIView vs UIViewController)
body: <p>I'm designing a simple Quiz application. The application needs to display different types of QuizQuestions. Each type of QuizQuestion has a distinct behavior and UI.</p>
  
  <p>The user interface will be something like this:
  <a href="http://dl.getdropbox.com/u/907284/Picture%201.png" rel="nofollow noreferrer">alt text http://dl.getdropbox.com/u/907284/Picture%201.png</a></p>
  
  <p>I would like to be able to design each type of QuizQuestion in Interface Builder.</p>
  
  <p>For example, a MultipleChoiceQuizQuestion would look like this:
  <a href="http://dl.getdropbox.com/u/907284/Picture%202.png" rel="nofollow noreferrer">alt text http://dl.getdropbox.com/u/907284/Picture%202.png</a></p>
  
  <p>Originally, I planned to make the QuizQuestion class a UIViewController. However, I read in the Apple documentation that UIViewControllers should only be used to display an entire page.</p>
  
  <p>Therefore, I made my QuizController (which manages the entire screen e.g. prev/next buttons) a UIViewController and my QuizQuestion class a subclass of UIView.</p>
  
  <p>However, to load this UIView (created in IB), I must<a href="https://stackoverflow.com/questions/863321/iphone-how-to-load-a-view-using-a-nib-file-created-with-interface-builder">&#x5B;1&#x5D;</a> do the following in my constructor:</p>
  
  <pre><code>//MultipleQuizQuestion.m
  +(id)createInstance {
      UIViewController *useless = [[UIViewController alloc] initWithNibName:@"MultipleQuizQuestion" bundle:nil];
      UIView *view = [[useless.view retain] autorelease];
      [useless release];
      return view; // probably has a memory leak or something
  }
  </code></pre>
  
  <p>This type of access does not seem to be standard or object-oriented. Is this type of code normal/acceptable? Or did I make a poor choice somewhere in my design?</p>
  
  <p>Thankyou,</p>
  
  <p><em>edit (for clarity):</em> I'd like to have a separate class to control the multipleChoiceView...like a ViewController but apparently that's only for entire windows. Maybe I should make a MultipleChoiceViewManager (not controller!) and set the File's Owner to that instead?</p>