Получить UINavController из подпредставления UIView? - PullRequest
1 голос
/ 05 мая 2011

Я добавил пользовательское подпредставление в представление содержимого UIViewController.Из этого подпредставления, как я могу получить ссылку на контроллер суперпредставления?Спасибо

1 Ответ

5 голосов
/ 09 мая 2011

Правильный ответ: «Ты делаешь это неправильно ™»; -)

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

Какао предоставляет несколько шаблонов для решения этой проблемы:

  • Используйте делегата: Определите протокол с именем DemoViewDelegate и добавьте свойство делегата в DemoView. Затем попросите ваш контроллер представления реализовать этот протокол. Важно: делегатов никогда не следует оставлять! Любое созданное вами свойство делегата должно быть установлено на assign. См. Документы о делегировании Apple или просто Google "Шаблон делегирования".

  • Используйте цепочку респондента: Вызовите UIApplication sendAction:to:from:forEvent: и оставьте to: установленным на nil, чтобы ваше сообщение действия автоматически перенаправлялось по цепочке респондента вашему контроллеру представления. См. Документы Apple Responder и более подробные Документы действий сообщения .

  • Используйте уведомление: Реже встречается в этом конкретном сценарии, но вы также можете настроить контроллер представления на прослушивание уведомления, которое отправляет представление.

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