title: release after iPhone navigationController pushViewController
body: <p>I am very confused at the following code:</p>
  
  <pre><code>- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {    
  RPSAdvisorViewController *pushThis = [[RPSAdvisorViewController alloc]init];
  pushThis.opponentName = [opponentArray objectAtIndex:indexPath.row];
  [self.navigationController pushViewController:pushThis animated:YES];
  //[pushThis release];
  }
  </code></pre>
  
  <p>The if the line [pushThis release] does not get commented out, the app would crash when I pop back out of that view. I thought I always need to released the viewControllers that I allocated, but this time the app won't let me. </p>
  
  <p>I even tried testing for leaks in instruments like this without releasing pushThis, there are no leaks. </p>
  
  <p>I am really confused, can some one tell me why I'm not suppose to release pushThis?</p>
  
  <p>Edit1: The crash will produce this error message:</p>
  
  <p>-[CALayer release]: message sent to deallocated instance 0x4e66b20</p>
  
  <p>It appears that when the navigationController pops the view controller, it trys to send release to pushThis again, which was already released. If I don't release everything works perfectly, instruments does not show any leaks even if i repeatedly push and pop the view controller. </p>