2010-03-01 3 views
1

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

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

Любые идеи, пожалуйста?

Благодаря

ответ

3

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

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

+0

У меня есть собственный контроллер вида. Я не понимаю, что для контроллера кнопки вместо представления обрабатывается действие кнопки. Не могли бы вы рассказать об этом? Большое спасибо – msk

+0

Спасибо, хотя Оле, ваша идея делегата помогла. Немного Гуглинга, и бам! – msk

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