В MainViewController мне нужно настроить некоторые изображения при изменении ориентации. Легко - просто добавьте код в willAnimateRotationToInterfaceOrientation: callback
- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration {
NSLog(@"orientation: %@", name(orientation));
..
Работает так, как ожидалось. В то время как в Portrait я нажимаю на UIViewController с ориентацией на ориентацию UINavigationController. Я вращаюсь в Пейзаж, и все хорошо.
Затем я возвращаюсь к MainViewController, вызывая
[self.navigationController popViewControllerAnimated:YES];
В то время как подпрограммы MainViewController настроены на Landscape в соответствии с масками авторазмера, willAnimateRotationToInterfaceOrientation: не будет вызван!
Я бы ожидал, что willAnimateRotationToInterfaceOrientation: либо вызывается, когда не находится поверх стека контроллера навигации, либо, по крайней мере, вызывается при возврате в верхнюю часть стека.
Я предполагаю, что я мог бы вручную вызвать willAnimateRotationToInterfaceOrientation: перед попсом, но это кажется неправильным.
Что мне не хватает?