title: Design options for iPhone app with numerous (~50) screens, each with the same background
body: <p>I'm writing an iPhone app (which will be my first ios app) that has about 50 screens, each of which has the same background - where the background is an image covering the entire screen real estate and another image at the top as a banner.</p>
  
  <p>Each screen will have some text along with 0, 1, 2 or 3 buttons appearing beneath the banner image.</p>
  
  <p>What is the best design for putting this together?</p>
  
  <p>The options I could think of were (in every each I was planning on having a root controller which is responsible for displaying each view as appropriate).
  1) Have 50 separate screens as xibs (and associated view controllers), each of which contains the two background images plus however many buttons each particular screen needs.</p>
  
  <p>2) Have 4 superclasses as xibs - (representing no buttons, 1 button, 2 button, 3 buttons) and have each of those contain the background images and as many buttons as appropriate. Then have 50 subclasses which simply just set the text and button content as appropriate using the superclasses instance variable outlets.</p>
  
  <p>3) Have the root controller have a view which contains the two background images which is there permanently, and each of the 50 views displays its text and buttons on top of that.</p>
  
  <p>4) (If this is possible, I need to check if a window can have images). Same as 3, except the root controller doesn't have a view, the main window displays the background images and each class displays its text and buttons on the top of this. So each view controller would have to load and display the text and button objects using code (in which case there's not much point to have xibs for them).</p>
  
  <p>Is there another solution? Is one of these the "best" solution?</p>
  
  <p>If I went with 3 would it not be possible to define the position text and buttons in a xib? (because in order to do so they would need a parent view in order to position them in interface builder, but if that were the case then when the view is drawn the background wouldn't be visible).</p>
  
  <p>If 4 is possible, then the root controller has no view, therefore does it still need to be descended from UIViewController, or could it simply be descended from NSObject?</p>
  
  <p>I think at the moment I am leaning towards option 2) as that way I can design all the views visually as xibs, but there are only 4 of them. Unless there is a better more elegant solution.</p>
  
  <p>TIA</p>