UIView связь с UIViewController - PullRequest
       27

UIView связь с UIViewController

1 голос
/ 27 июня 2011

Из UIViewController я программно создаю около 10 экземпляров CustomUIView и помещаю их в [представление UIViewController].

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

Я подумал о двух способах сделать это:

  1. Подписаться UIViewController в качестве наблюдателя на CustomUIView.Затем при срабатывании touchesBegan: withEvent: вызовите метод в наблюдателе UIViewController.

  2. Используйте [self.nextResponder touchesBegan: touches withEvent: event], чтобы вызвать событие для UIViewController.

Я реализовал оба, и они оба работают нормально.

Вопрос: Каков наилучший способ для созданного программным способом представления взаимодействовать с его UIViewController?Один из них - путь?Или есть третий способ?

Ресурсы, которые я нашел в Интернете, очень хорошо объясняют все «кусочки» Какао, но у меня возникают проблемы с поиском лучших практик для общей архитектуры.

Ответы [ 2 ]

3 голосов
/ 27 июня 2011

В случае сенсорных событий вам не нужно ничего делать!

Из справочника по классу UIViewController :

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

Это означает, что ваш контроллер представления может обрабатывать сенсорные события в своем представлении без дополнительной настройки, если вы не обрабатываете их в своем представлении.

2 голосов
/ 27 июня 2011

Вы бы сделали UIViewController делегатом для UIViews, если вы хотите, чтобы представления могли взаимодействовать с контроллером.

События касания автоматически отправляются в контроллеркак часть цепочки респондента .

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