Вы должны сделать что-то вроде
// First create the containerView
UIView *containerView = [UIView alloc] init..];
// Set it as the table header view (this will retain it)
[self.tableView setTableHeaderView:containerView];
// Now we're done with containerView, so release it:
[containerView release];
Вы могли бы также использовать
UIView *containerView = [UIView alloc] init..] autorelease];
но тогда вам не понадобится последнее сообщение о выпуске.
Если вы хотите «отключить» это представление заголовка, этого должно быть достаточно, чтобы сделать то, что вы написали:
[self.tableView setTableHeaderView:nil];
[self.tableView reloadData];