tableView.tableHeaderView being set but not drawn
Note! If you expect the table view to set the frame of the header view for you you're mistaken and will get very weird results.
I had mine set to CGRectZero
thinking it'd solve itself, but the thing wouldn't appear and when it did, it would appear tucked in under the navbar or sticking down into the first cell and such.
First of all your code looks fine.
2 possible problems:
self.tableView
is not settableHeaderView
is overridden afterviewDidLoad