title: presentModalViewController: doesn't return
body: <p>I have a really weird thing happening.  In my app delegate, I'm calling presentModalViewController: on a UITabBarController to display a custom class (LoadingViewController) that implements loadView to display an image.  When I test this in the simulator against an iOS 4.x device (iPhone or iPad), it works fine at all orientations.  However, when I test against a 3.2 iPad, it only works fine if the orientation is portrait.  If it is landscape, the presentModalViewController: method doesn't return.  The loadView and viewDidLoad methods get called but the viewWillAppear: and viewDidAppear: methods don't get called.</p>
  
  <p>Any ideas?</p>
  
  <p>Here's the code for loadView in LoadingViewController:</p>
  
  <pre><code>- (void) loadView
  {
      CGRect mainScreenBounds = [UIScreen mainScreen].bounds;
  
      UIImageView * loadingImageView = [[UIImageView alloc] initWithFrame: mainScreenBounds];
  
      loadingImageView.autoresizesSubviews = YES;
      loadingImageView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
  
      NSString * splashImageName = [self getSplashImageName: [UIDevice currentDevice].orientation];
      loadingImageView.image = [UIImage imageNamed: splashImageName];
  
      UIActivityIndicatorView * spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhiteLarge];
      CGRect spinnerFrame = spinner.frame;
  
      spinnerFrame.origin.x = (mainScreenBounds.size.width - spinnerFrame.size.width) / 2;
      spinnerFrame.origin.y = mainScreenBounds.size.height * 0.7f;
  
      spinner.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin
                               | UIViewAutoresizingFlexibleRightMargin
                               | UIViewAutoresizingFlexibleTopMargin
                               | UIViewAutoresizingFlexibleBottomMargin;
      spinner.frame = spinnerFrame;
      spinner.hidesWhenStopped = YES;
  
      [spinner startAnimating];
  
      [loadingImageView addSubview: spinner];
  
      // Add a label indicating we are working so the user knows what we are doing.
      UIColor * textColor = [UIColor blueColor];
  
      CGRect labelFrame = loadingImageView.frame;
      labelFrame.size.height = 40;
      labelFrame.origin.y = spinnerFrame.origin.y - 100;
      UILabel * workingLabel = [[UILabel alloc] initWithFrame: labelFrame];
      workingLabel.font             = [UIFont systemFontOfSize: 18.0];
      workingLabel.textColor        = textColor;
      workingLabel.backgroundColor  = [UIColor clearColor];
      workingLabel.textAlignment    = UITextAlignmentCenter;
      workingLabel.text             = NSLocalizedString(@"Searching for location...", @"Searching for location...");
      workingLabel.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin
                                    | UIViewAutoresizingFlexibleRightMargin
                                    | UIViewAutoresizingFlexibleTopMargin
                                    | UIViewAutoresizingFlexibleBottomMargin
                                    | UIViewAutoresizingFlexibleWidth
                                    | UIViewAutoresizingFlexibleHeight;
  
      [loadingImageView addSubview: workingLabel];
      [workingLabel release];
  
      [spinner release];
  
      self.view = loadingImageView;
      [loadingImageView release];
  }
  </code></pre>