title: NSOperationQueue avoids pushing view controller into navigation controller stack?
body: <p>I have a view controller that is sub class of UIViewController which has table view into it and each rows in table view is linked to distinct xml url.
  I made a parser class that is sub class of NSOperation and implemented methods to parse the XML file on selection of each row as,</p>
  
  <pre><code>- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
      [tableView deselectRowAtIndexPath:indexPath animated:YES];
      [self performSelectorOnMainThread:@selector(pushView) withObject:nil waitUntilDone:NO];
      [self performSelectorInBackground:@selector(parseOperation:) withObject:indexPath];
  }
  
  - (void)pushView {
      detailView = [[viewDetailsController alloc] initWithNibName:@"viewDetailsController" bundle:nil];
      [self.navigationController pushViewController:detailView animated:YES]; 
  }
  
   - (void)parseOperation:(NSIndexPath *)indexPath {
      NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
      self.queue = [[NSOperationQueue alloc] init];
      parserClass *parser = [[parserClass alloc] initWithParseUrl:[[self.arrayOfUrls objectAtIndex:indexPath.row]delegate:self];
      [queue addOperation:parser];
      [parser release];
      [pool release];
  }
  </code></pre>
  
  <p>Parser works great but in its custom delegate method I have called to push view controller on the top of the navigation controller stack, the view controller initializes correctly but the new view controller is not pushed into the screen.</p>
  
  <p>I have edited the question for using the main thread and background thread while the background thread works correctly for parsing the main thread just initializes and does not push view controller.
  What is the problem ?</p>