У меня есть tableViewController, который изначально был основным контроллером представления на экране.Когда это было так, я использовал метод willRotateToInterfaceOrientation: toInterfaceOrientation: duration, чтобы вызвать reloadData, чтобы моя таблица перезагрузила свое содержимое.Это сработало, как и ожидалось, в том случае, если при изменении ориентации содержимое таблицы будет перезагружено.
Позже мне нужно было поместить tableViewController в navigationController.Как только это будет сделано, метод willRotateToInterfaceOrientation: toInterfaceOrientation: duration, пока он еще вызывается, не обновляет содержимое таблицы должным образом.
Я предполагаю, что, поместив tableViewController в navigationController, это повлияло на порядок вращениясобытия отправляются, и когда вызывается метод reloadData, это слишком рано в жизненном цикле tableView, и изменение происходит до поворота.Я заверил, что метод willRotateToInterfaceOrientation: toInterfaceOrientation: duration вызывается с некоторыми инструкциями журнала.Кроме того, просто чтобы посмотреть, что произойдет, я реализовал метод didRotateFromInterfaceOrientation: fromInterfaceOrientation, в который я поместил оператор reloadData, и это правильно перезагружает содержимое таблицы.Однако это происходит после анимации вращения, а затем перерисовывает таблицу, которая создает заметное смещение пользовательского интерфейса.
Кто-нибудь еще видел такое поведение раньше или знает, как его исправить?
Спасибо за любыепредложения.