Должны ли родительские UIViewControllers распространять didRotateFromInterfaceOrientation на детей?

Существует два UIViewController: MyParentViewController и MyToolbarViewController. MyParentViewController управляет видом, который занимает большую часть экрана. MyToolbarViewController является подпредставлением MyParentViewController и управляет сравнительно небольшим представлением с более высоким z-индексом, чем представление, управляемое его родителем, MyParentViewController.

Поскольку представление MyParentViewController находится выше в иерархии представлений, его shouldAutorotateToDeviceOrientation метод, кажется, превосходит тот из MyToolbarViewController's. Все, что он возвращает, является значением, которое используется. Я не вижу MyToolbarViewController's didAutorotateFromDeviceOrientation позвоните, однако. Это моя ответственность переопределить MyParentViewController didAutorotateFromDeviceOrientation и вызвать метод на subview?

1 ответ

Решение

В iOS 4.x Apple определяет все "легальные" контроллеры контейнеров (разделенное представление, представление таблицы, представление навигации и представление вкладки). Эти контроллеры управляют всеми методами управления представлениями (viewWill…, viewDid…, shouldAutoRotate…) и отправьте их соответствующим образом.

Если вы попытаетесь сделать что-то подобное, ни один из этих методов не будет перенаправлен. В настоящее время, если вам нужно действовать этими методами, за это отвечает "верхний" контроллер.

[читать между строк для будущего ответа]

Другие вопросы по тегам