2016-12-13 1 views
4

Так, например, скажем, у меня есть регулярный подкласс UIViewController и я подключил объект управления, содержащийся в поле зрения этого контроллера к действию SEGUE, что позволит просмотреть другой контроллер представления приходит в поле зрения ...В iOS выполняется ли экземпляр segue нового контроллера для просмотра? Или он уже создан?

достаточно просто ,

Когда я вызываю метод под названием prepare (for: sender :) на обычном подклассе UIViewController, на данный момент меня интересует новый, который будет использоваться контроллером представления, чей вид появится на экране .. Это новый контроллер представления уже создан где-то?

Я считаю, что ответ да, потому что внутри функции подготовки (для: отправителя :) я устанавливаю ссылку для segue.destination (которая является контроллером представления адресата), и когда я печатаю эту ссылку, она кажется в памяти уже сказано, что новый контроллер представления уже создан.

Может ли кто-нибудь подтвердить или опровергнуть, что этот новый контроллер представлений (созданный из раскадровки) уже был создан, или поставил это в более простых выражениях?

Благодаря

+0

Это легко узнать. Переопределите методы и журнал инициализации контроллера представления, когда и как создаются новые экземпляры. –

+1

В моем тестировании новый экземпляр создается каждый раз при переходе к контроллеру представления подробностей в контроллере с раздельным представлением –

ответ

2

документация Apple, говорит,

Когда раскадровка среда определяет пользовательский SEGUE, он создает новый экземпляр вашего класса, настраивает его с объектами, вид контроллера, задает источник вид контроллера чтобы подготовиться к переходу, а затем выполняет сеанс.

(https://developer.apple.com/reference/uikit/uistoryboardsegue)

Так UIViewController назначения конкретизируется в Segue как раз перед отправкой prepareForSegue к источнику UIViewController.

Так, чтобы ответить на ваши вопросы прямо, это «да» на оба вопроса:

В прошивкой, делает переход экземпляр нового к-быть использован контроллер представления?

Да, segue создает экземпляр контроллера точки назначения.

Или он уже создан?

Да, к тому времени, как вы вызываете свой prepareForSegue, он уже создан - сразу же.

UPDATE: Как отметил @Jeffery_Thomas, это тривиально легко показать, добавив NSLog() строку init вашего целевого зрения контроллера.

1

Может кто-нибудь подтвердить/опровергнуть, что этот новый контроллер представления (создан из раскадровки) уже был создан экземпляр,

Да. Вот что это означает, чтобы вызвать segue.Задача с запущенным сеансом заключается в создании экземпляра контроллера вида назначения, и prepare существует, так что вы можете настроить на этот экземпляр.

Смежные вопросы