У меня довольно простая иерархия представлений в приложении для iPad.
Окно -> RootView -> TableView / DetailView
TableView и DetailView - родные братья, добавленные как подпредставления (согласно решению предыдущего вопроса).
На запуске TableView впереди. Когда вы выбираете ячейку, вызывается метод в делегате приложения, который заменяет их, помещая DetailView впереди. Кнопка закрытия в DetailView делает обратное.
Отлично работает.
Однако ...
DetailView содержит UIScrollView, нарисованный в .xib
Когда DetailView выходит вперед, у меня есть метод, который получает информацию о содержимом ячейки, выбор которого вызвал изменение. Это заполняет детальный вид содержимым метки и изображением.
Метки являются простыми установщиками для IBOutlets для меток в .xib
Размер изображения соответствует высоте UIScrollView, сохраняя пропорции. Это делается программно, добавляя его в UIImageView, который добавляется в UIScrollView.
Поведение, которое я имею, хорошо для Портрета.
Когда он поворачивается в альбомную, я хочу изменить размер изображения, чтобы он соответствовал width включающего UIImageView (и впоследствии включающего UIScrollView).
У меня есть отличный код для изменения размера изображения (любезно добавлено добавление категории в UIImage из [текст ссылки] [1]
ПРОБЛЕМА ...
Только RootViewController отвечает на вызовы didRotateToInterfaceOrientation.
Мне нужно отправить сообщение об этом методу на контроллере DetailViews, сказав ему изменить размер изображения, а затем перерисовать связанный UIImageView.
Ссылка на контроллер подпредставления кажется простой и, возможно, я упускаю простой ответ.
Я пытался использовать:
[[self.view.subviews objectAtIndex:1] didRotateFromInterfaceOrientation:fromInterfaceOrientation];
и
[self.view viewWithTag:[[self.view.subviews objectAtIndex:1] tag]]
Но они оба возвращают представление, а не контроллер представлений, и поэтому все злятся на селекторы, когда я пытаюсь запустить его.
Может кто-нибудь указать мне правильный путь?