Использование навигационного контроллера superview - PullRequest
1 голос
/ 02 марта 2010

Я сделал пользовательский вид, к которому добавляю пользовательскую кнопку. Это пользовательское представление переходит в другое представление (календарь Kal для iphone), которое я вставляю в контроллер навигации. Теперь кнопка в моем пользовательском представлении связана с IBAction, в котором я не могу вызвать self.navigationController для извлечения текущего представления из.

Я пробовал [[superder отправителя] navigationController] для иерархии вызовов суперпредставления, но это также не работает.

Есть идеи, пожалуйста?

Спасибо

1 Ответ

3 голосов
/ 02 марта 2010

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

Самый простой способ решить вашу проблему - это заставить контроллер представления вместо представления обрабатывать действие кнопки. Если это не работает для вашего дизайна, подумайте о разработке протокола делегата для вашего пользовательского представления и сделайте ваш контроллер представления делегатом пользовательского представления. Затем представление вызовет метод делегата в методе действия кнопки. Этот последний метод часто используется в какао, например UIScrollView (UIScrollViewDelegate) и UITableView (UITableViewDelegate).

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