Не знаю почему, но этот контроллер представления не знает своего собственного интерфейса. Я предполагаю, что это связано с тем фактом, что он «внутри» UITabBarController ... И «новый способ» обработки этого, который Apple изменил с 3.0.
Приветствуются уточняющие комментарии по поводу этого "изменения"!
Итог, self.interfaceOrientation всегда оценивалось в 1 («вверх») независимо от того, как устройство было повернуто ...
Я решил эту проблему, изменив ссылку и использовав вместо этого MyTabBarController.interfaceOrientation, поскольку «суперкласс» TabBarController, казалось, надежно «знал», какова была ориентация устройства.
(Конечно, я должен был дать этому классу ссылку на MyTabBarController, когда MyTabBarController загружает все UIViewController в себя ...) Это уже существовало в коде ...
Учитывая эту ссылку, следующее простое изменение дало мне доступ к «истинному» состоянию вращения ... и этот код выполнялся, когда ожидалось ...
if ((myTabBarController.interfaceOrientation == UIDeviceOrientationLandscapeLeft) || (myTabBarController.interfaceOrientation == UIDeviceOrientationLandscapeRight)) {
[self setTextViewHeight:116];