Контроллер представления контейнера iOS - Почему для transitionFromViewController нужен fromViewController? - PullRequest
0 голосов
/ 03 февраля 2012

При использовании пользовательского контроллера представления контейнера, я не совсем понимаю, почему представляющий контроллер представления должен указывать from, потому что, будучи классом контейнера, он должен уже знать, что находится в иерархии представления, нет?

transitionFromViewController: toViewController: продолжительность: опции: анимация: завершение:

Ответы [ 2 ]

1 голос
/ 07 декабря 2012

Контроллерам контейнерного представления иногда нужно поместить представления содержащихся контроллеров в определенные подпредставления их собственного представления.(Например, переопределение SplitViewController может иметь левое и правое позиционные представления, содержащие представления главного и подробного контроллера соответственно.) Предоставление fromViewController сообщает UIViewController, где в иерархии представления следует вставить представление нового контроллера, а также какой конкретный вид следует удалитьпосле анимации.

(в отличие от другого ответа, фреймы представлений для вас вообще не установлены. Вы делаете это до вызова и в блоке анимации.Системное руководство " Создание пользовательских контроллеров представления контейнеров " в документации имеет довольно хороший пример.)

Как это происходит, на самом деле использование transitionFromViewController:... представляется необязательным.Вы можете управлять своей иерархией представления вручную, с анимацией или без нее, и она отлично работает.Я все еще формирую свое мнение, но я думаю, что предпочитаю делать это вручную, чтобы легче обрабатывать случаи, когда один из VC равен нулю.

0 голосов
/ 03 февраля 2012

Это сделано таким образом, чтобы у вас был контроллер представления, в котором есть представления с viewControllers.Параметр from определяет исходный контроллер представления и дает системе возможность правильно размещать анимации.

Отображение, в котором у вас было представление с четырьмя представлениями в виде плиток.Контроллер основного представления может последовательно вызывать это на своих «дочерних» контроллерах представления, и с помощью спецификации from -> to он не будет исходить из предположения, что вызывающий объект является из viewController.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...