Сохранить UIViewController или нет в стеке навигации - PullRequest
0 голосов
/ 06 июля 2010

У меня есть сценарий, который я не уверен, сохранить ли контроллер представления или нет.Скажем, у меня было ViewControllerOne.Когда кнопка была нажата, ViewControllerOne будет толкать ViewControllerTwo в стеке навигации.ViewControllerTwo нужна ссылка на ViewControllerOne, потому что ему нужен доступ к ivar в этом контроллере представления.Вопрос в том, сохранил бы я ViewControllerOne в ViewControllerTwo (@property (retain) ViewControllerOne *vc) или нет?Контроллер навигации уже сохраняет ViewControllerOne, поэтому я не совсем уверен.

Спасибо

Ответы [ 3 ]

0 голосов
/ 06 июля 2010

Вы, вероятно, должны установить viewControllerOne как делегат viewControllerTwo. Как правило, делегат не сохраняется.

Как вы уже описали, viewControllerTwo не нужно ничего знать, в частности, о viewControllerOne, ему просто нужно знать, как получить доступ к части данных и сообщить объекту более высокого уровня об изменениях этих данных. Это обычная роль для делегата.

0 голосов
/ 11 июля 2010

Ранпрайго правильный.

Лучшее решение - добавить свойство в ViewControllerTwo и передать ему iVar из ViewControllerOne, прежде чем помещать его в стек навигации.

По соглашению, свойство, добавленное в ViewControllerTwo, следует сохранить, если оноявляется объектом, хотя в этом примере вы могли бы получить назначенное свойство, потому что ViewControllerTwo будет освобожден до того, как ViewControllerOne будет, и я предполагаю, что ViewControllerOne сохранил iVar

В targetC все переменные, которые являются объектами, передаются ссылочными примитивамии структуры передаются по значению, как это было бы в C

0 голосов
/ 06 июля 2010

Вопрос в том, почему ViewControllerTwo требуется доступ к ивару с ViewControllerOne?

. Лучше было бы передать значение ивара в ViewControllerOne до ViewControllerTwo перед нажатиемViewControllerTwo в стек.

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