У меня были другие проблемы, что заголовок не обновлялся при вращении устройства, т.е. вышеописанный метод не использовался в моей ситуации, вы можете проверить, относится ли это также и к вам.
Решение, которое я принял, состояло в том, чтобы вызвать reloadData во вращающемся методе:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
// This solves an issue that the header doesn't show when roating device (ok on simulator)
NSIndexPath* ipselected = [self.tableView indexPathForSelectedRow];
[self.tableView reloadData];
[self.tableView selectRowAtIndexPath:ipselected animated:false scrollPosition:UITableViewScrollPositionMiddle];
}
Конечно, это полезно, если вы можете позволить полную перезагрузку при вращении устройства, но обычно это время, когда пользователь лучше принимает задержку 0,5 с, поскольку он / она занят перемещением устройства.
В качестве альтернативы вы можете оставить ивар на своей кнопке и изменить ее рамку описанным выше способом.