title: Fade to black within a uinavigationcontroller?
body: <p>I want to fade the whole screen (including navigation bar) to black when a user presses a button on a uinavigationcontroler, before showing a new view. (i don't want to push this new view, for various reasons).
  How would I achieve this?</p>
  
  <hr>
  
  <p><strong>EDIT</strong></p>
  
  <p>Thanks to Mac and Eiko, I have figured it out. Here's the code I used. Not sure if it is optimal, but it does the trick.</p>
  
  <pre><code>// this is called from a programmatically constructed button. 
  // change (void) to (IBAction) if linking from IB.
  
  - (void)fadeAndShow:(id)sender
  {
      // blackView is a @property which has been @synthesize-d
      // do I really need to alloc and init this?
      blackView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
      blackView.alpha = 0.0;
      [blackView setBackgroundColor:[UIColor blackColor]];
      [self.navigationController.navigationBar.superview addSubview:blackView];
      [UIView beginAnimations:@"fadeAway" context:NULL]; 
      [UIView setAnimationDelegate:self];
      [UIView setAnimationDuration:0.75];
      [UIView setAnimationDidStopSelector:@selector(showNewScreen:finished:context:)];
      blackView.alpha = 1.0;
      [UIView commitAnimations];
  }
  
  
  -(void)showNewScreen:(NSString *)animationID finished:(BOOL)finished context:(void *)context
  {
      // I guess you could fade in somewhere in the new view controller. 
      // don't know how to fade back in this view tho... viewDidAppear?
      NewViewController *controller = [[NewViewController alloc] initWithNibName:@"NewView" bundle:nil];
      [self.navigationController setNavigationBarHidden:YES];
      controller.hidesBottomBarWhenPushed = YES;
      [[self navigationController] pushViewController:controller animated:NO];
      [blackView removeFromSuperview];
      [controller release];
  }
  </code></pre>