title: Why setNeedsDisplay required when initWithNibName used
body: <p>I have custom UIViewController class called MSPageViewController with and associated nib file.  I have an IBOutlet which is a UIImageView called pageImage.</p>
  
  <p>Now, I want to use this view controller in another UIViewController which will display a series of my custom MSPageViewController in a UIPageViewController. So, I use the following code:</p>
  
  <p>// alloc and init my custom view controller</p>
  
  <pre><code>MSPageViewController *page1 = [[MSPageViewController alloc] initWithNibName:@"MSPageViewController" bundle:nil];
  </code></pre>
  
  <p>// I must call this or, the image that I set below will always be null
  // why?  I guess it's because the view hasn't been drawn yet because it hasn't been displayed, so I need to force the redraw - but this is my question.  Is this is the right approach?</p>
  
  <pre><code>[page1.view setNeedsDisplay];
  </code></pre>
  
  <p>// set the image</p>
  
  <pre><code>page1.pageImage.image = [UIImage imageNamed:@"tutorialPage1.png"];
  </code></pre>
  
  <p>// make my array of view controllers, it expects an array because could be double-sided</p>
  
  <pre><code>NSArray *viewController = [NSArray page1];
  </code></pre>
  
  <p>// pass the array that contains my custom view controller</p>
  
  <pre><code>[self.pageController setViewControllers:viewController direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
  </code></pre>
  
  <p>So am I doing this right?  I have to force the redraw so that my outlets exist when I try to assign to them?</p>