addChildViewController и presentViewController - PullRequest
       2

addChildViewController и presentViewController

7 голосов
/ 04 февраля 2012

iOS 5 представляет концепцию пользовательского контроллера представления контейнера и предоставляет API, такой как addChildViewController. Вопрос: можете ли вы добавить контроллер представления как дочерний элемент и все еще представить его, используя presentViewController? Делает ли последний автоматически его дочерний контроллер вида presentingViewController?

1 Ответ

11 голосов
/ 04 февраля 2012

Это не так, как это должно быть использовано.

Родительское / дочернее отношение - это когда контроллер представления имеет подпредставления, которые управляются их собственными контроллерами представления, например UITabBarController, где родительский контроллер представления рисует вкладки, а дочерние контроллеры представления рисуют содержимое каждой вкладки.

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

Почему ты хотел это сделать? Если это просто так, что контроллеры представления имеют ссылку друг на друга и могут передавать данные, есть другие способы сделать это (например, шаблон делегата, NSNotifications или даже просто свойство, связывающее эти два элемента).

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