title: tableView:heightForRowAtIndexPath: placed in category is not called for UITableViewController
body: <p>I have an <code>UITableViewController</code><br>
  </p>
  
  <pre><code>@interface GenderSelectController : UITableViewController
  
  - (id)initWithPreviousGender:(NSString*)prevGender;
  
  @end
  
  @implementation GenderSelectController
  
  - (id)initWithPreviousGender:(NSString *)_prevGender
  {
      // It's not loaded from nib but created in code
      if ((self = [super initWithStyle:UITableViewStyleGrouped])) {
          prevGender = _prevGender;
      }
      return self;
  }
  </code></pre>
  
  <p>And I have a category method</p>
  
  <pre class="lang-objective-c prettyprint-override"><code>@interface UITableViewController (RowHeight)
  
  @end
  
  @implementation UITableViewController (RowHeight) 
  
  - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
  {
      return (indexPath.row) ? tableView.rowHeight : tableView.rowHeight - 1;
  }
  
  @end
  </code></pre>
  
  <p>And it's NOT called until I do it explicitely
  </p>
  
  <pre><code>- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
  {
      return [super tableView:tableView heightForRowAtIndexPath:indexPath];
  }
  </code></pre>
  
  <p>But another category, for <code>UIViewController</code> which implements <code>UITableViewDelegate</code> method, it working just fine. What's the matter?</p>