title: iOS - Popping UIViewController doesn't destroy its properties
body: <p>When I pop a <code>UIViewController</code> instance off of my <code>UINavigationController</code>, I find that its properties remain (<code>NSTimers</code> keep timing, <code>AVAudioPlayers</code> keep playing, etc.).  I'm wondering what's wrong with my approach?  </p>
  
  <p>I push the UIViewController instance onto the UINavigationController this way:</p>
  
  <pre><code>- (IBAction)buttonPressed:(id)sender {
      UINavigationController *nc=[self navigationController];
      NewViewController *nvc=[[NewViewController alloc] init];
      [nvc setNameToUse:[self nameToUse]];
      [nc pushViewController:nvc2 animated:YES];
  }
  </code></pre>
  
  <p>The NewViewController has a sub-viewcontroller, that is added via NiewViewController's viewDidLoad method:  </p>
  
  <pre><code>self.mySubViewController=[[SubViewViewController alloc] initWithName:self.nameToUse];
  self.mySubViewController.view.frame=CGRectMake(0,
                                             0,
                                             self.mySubViewController.view.frame.size.width,
                                             self.mySubViewController.view.frame.size.height);
  [self.view addSubview:self.mySubViewController.view];
  </code></pre>
  
  <p>It's the properties of SubViewController that don't go away when NewViewController is popped.  One of these in particular is a timer, declared as follows:</p>
  
  <pre><code>@property (nonatomic) NSTimer *aTimer;
  </code></pre>
  
  <p>Any advice on this would be terrific.  I'm hoping that by solving this issue, the crashes that have been happening once in a while (after the app has been running for 45 or so minutes) will stop!  Or at least I'll have a better idea of what's causing them...  :) Thanks for reading.</p>