title: pushViewController followed by 'back' button sometimes doesn't pop view
body: <p>I am using pushViewController to push a view in my application.  Pressing the back button works about 95% of the time like you would expect.  But if I go in and out of the view as fast as possible I run into a condition where the top bar moves as if a pop has occurred, but the view says.  In this state, I am left with a back button, (in normal operation I have changed the text of this button to 'cancel').  pressing back will animate the top bar again, and then I am left with no buttons in the top bar, and I'm stuck inside the view.</p>
  
  <p>Do you have any idea what might be going on here?  Here are some more details:  </p>
  
  <p>The sub view calls these once or twice:</p>
  
  <pre><code>[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
  [[UIApplication sharedApplication] endIgnoringInteractionEvents];
  </code></pre>
  
  <p>also the sub view is extending a BaseViewController.  Inside this base controller all of the view methods are overloaded (they just call super).  The one that might be interesting is:</p>
  
  <pre><code>- (void)viewWillAppear:(BOOL)animated {
      [super viewWillAppear:animated];
      [self customizeNavigationBar];
  }
  
  - (void)customizeNavigationBar
  {
      [self.navigationController.navigationBar setTintColor:UIColorFromRGB(kNavigationBackgroundColor)];
      UIBarButtonItem *backButton_ = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"ID_BUTTON_BACK", @"") style:UIBarButtonItemStyleBordered target:self action:nil];
      self.navigationItem.backBarButtonItem = backButton_;
      [backButton_ release];
  </code></pre>
  
  <p>}</p>
  
  <p>Please let me know if you need more code or if I can explain things better.</p>
  
  <p>--- Edit ----
  I also am calling Google Analytics in view will appear.  I remember this causing other issues in my app:</p>
  
  <pre><code>- (void)viewDidAppear:(BOOL)animated
  {
      [super viewDidAppear:animated];
  
      NSError *error;
      if (![[GANTracker sharedTracker] trackPageview:@"/app_new_page"
                    withError:&amp;error]) {    }
  }
  </code></pre>
  
  <p>This code is being put in my actual view (not BaseViewController).</p>