title: UIView layoutSubviews not being called
body: <p>Using Xcode 4.2/iOS5.0</p>
  
  <p>I have a viewController and an associated viewController.xib. The viewController is set up as the .xib's file's owner. It is invoked from a <code>UINavigationController</code>. </p>
  
  <p>I am attempting some manual layout when the device is rotated portrait/landscape</p>
  
  <p>As I understand it the <code>UIView</code> method to override is</p>
  
  <pre><code>- (void)layoutSubviews;
  </code></pre>
  
  <p>this is where you do the layout</p>
  
  <p>But - as with <code>drawRect</code> - you do not call this directly, it is invoked when appropriate by iOS</p>
  
  <p>Instead you call <code>setNeedsLayout</code>... </p>
  
  <p>So I have this in the ViewController</p>
  
  <pre><code>- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)
           fromInterfaceOrientation {
     [[self view] setNeedsLayout];
   }
  </code></pre>
  
  <p>and  in the same ViewController I have this</p>
  
  <pre><code>- (void)layoutSubviews {
      //.manual override of automatic layout on rotation
  NSLog(@"layoutSubviews");
   }
  </code></pre>
  
  <p>However <code>layoutSubviews</code> does not get called and I don't understand why. </p>
  
  <p>Here is a clue... 
  If I call <code>layoutSubviews</code> directly as <code>[self layoutSubviews]</code></p>
  
  <pre><code>- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)
           fromInterfaceOrientation {
     [self layoutSubviews];
   }
  </code></pre>
  
  <p>it does trigger</p>
  
  <p>But if I call it as <code>[[self view] layoutSubviews]</code> it does not</p>
  
  <p>So it appears that the view and it's controller are not wired up correctly?</p>