title: Cell get unselected without deselect command
body: <p>Usually my typical didselectrowatindexpath is like this:</p>
  
  <pre><code>-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {
      UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
      BGUIBusinessCellForDisplay * cellBiz = (BGUIBusinessCellForDisplay *) cell;
      [BGDetailBusinessViewController detailButtonPressed:cellBiz.biz withNavController:self.navigationController];
      [tableView deselectRowAtIndexPath:indexPath animated:YES];
  }
  </code></pre>
  
  <p>So if a row is selectec, open a new window or something. Then quickly deselect the row. Not deselecting the row means when we got back the row previously selected will still be there.</p>
  
  <p>However if I check at my past codes, I saw that the row is succesfully deselected even though I didn't call deselect at all</p>
  
  <p>I put a trap everywhere to track where and when the row is deselected:</p>
  
  <pre><code>-(void)viewDidAppear:(BOOL)animated
  {
  
  ...
  
  PO(self.tableView.indexPathForSelectedRow); //always show null here
  while(false);
  </code></pre>
  
  <p>}</p>
  
  <p>Turns out by viewDidAppear, say after I return from detail, the self.tablevView.indexPathForSelectedRow is already null. So the row is already deselected but when and where?</p>
  
  <p>I put more trap on obvious places</p>
  
  <pre><code>-(void)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath
  {
      while (false);//breakpoint here never called
  }
  
  -(void) tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *) indexPath
  {
      while (false); //breakpoint here never called 
  }
  </code></pre>
  
  <p>None of those are ever called.</p>
  
  <p>I gave up.</p>
  
  <p>Not biggy right now but this puzzles me to no end</p>
  
  <p>This is the full didSelectRowForIndexPath so you can verify that there is no desellect command there</p>
  
  <pre><code>-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {
      UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
  
      if ([cell isKindOfClass:[BGUIBusinessCellForDisplay class]])
      {
          BGUIBusinessCellForDisplay * cellBiz = (BGUIBusinessCellForDisplay *) cell;
          [BGDetailBusinessViewController detailButtonPressed:cellBiz.biz withNavController:self.navigationController];
      }
      else if ([cell isKindOfClass:[BGAddMoreBusiness class]])
      {
          BGBusinessEditViewController * editBusiness = [[BGBusinessEditViewController alloc]init];
          [self.navigationController SafelyPushController:editBusiness];
      }
      PO(self.tableView.indexPathForSelectedRow); //not null here
  }
  </code></pre>