Обработка сенсорной логики событий в Subview или ViewController - PullRequest
3 голосов
/ 30 августа 2010

У меня есть серия подклассов UIView, которые добавляются как подпредставления. Каждое подпредставление можно перетаскивать. Когда они удаляются (touchesEnded), мне нужно запустить метод в viewController, чтобы сделать некоторую работу. В настоящее время у меня touchEvents обрабатываются в каждом классе подпредставления. Должен ли я обрабатывать эти сенсорные события в viewController или передавать указатель на родительский viewController как свойство каждого класса, добавленного в качестве подпредставлений?

ОБНОВЛЕНИЕ: Или это работа для Центра уведомлений?

Ответы [ 2 ]

4 голосов
/ 31 августа 2010

UIViewController является подклассом UIResponder, и экземпляры автоматически вставляются в цепочку респондента за представлениями, которыми они управляют.В результате вы можете реализовать те же методы событий в подклассах UIViewController, что и в подклассах UIView, и они будут «просто работать»;то есть они будут вызываться автоматически.

Поэтому, если вашему контроллеру представления нужно ответить на -touchesEnded:withEvent:, просто реализуйте метод непосредственно в своем подклассе UIViewController.Если представление также должно что-то сделать в ответ на событие, вы всегда можете отправить ему сообщение из вашей -touchesEnded:withEvent: (или какой-либо другой) реализации.

1 голос
/ 30 августа 2010

Вы можете попробовать делегировать желаемое событие обработки касания из вашего подкласса uiview в контроллер uiview, используя протокол делегирования.Контроллер представления может установить себя в качестве делегата, поскольку он создает или добавляет каждое подпредставление.

В парадигме MVC, если вы хотите обработать прикосновение, характерное для внутренних элементов V-представления (внешний вид / расположение кнопки), тогда вы можетевы хотите обработать это касание в виде V, но если касание влияет на какое-то состояние вне представления (его положение в большем окне и т. д.), вы можете передать обработку этого касания контроллеру C для установки состояния в Mмодель.

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