Как получать события всего приложения с помощью приложения multiview - PullRequest
1 голос
/ 07 августа 2009

Я занимаюсь разработкой приложения для iPhone с множественными окнами (контроллер Nav), но мне нравится получать событие, если пользователь касается любого вида представления. Я так понимаю, это можно сделать путем подкласса делегата приложения? Если это правда, как я могу это сделать? Мое требование: мне нравится получать событие, как только пользователь касается любого места в любом представлении в моем приложении.

Спасибо за вашу помощь и время.

Ответы [ 3 ]

1 голос
/ 07 августа 2009

Ваша ссылка на подкласс UIApplication будет работать. Прочитайте комментарии, и в них описан несколько странный способ реализации IMO (если AppDelegate является подклассом UIApplication). Сам я бы создал отдельный класс в качестве подкласса UIApplication вместо того, чтобы делегат приложения выполнял обе работы, но я вижу преимущество в любом случае.

Тем не менее, это очень большая и необычная палка, которая может указывать на провал проекта. Какую проблему вы решаете с этим?

0 голосов
/ 07 августа 2009

Что не так с использованием уведомлений ? Если у вас отключены классы в вашем приложении, их тривиально прослушать определенное уведомление, а затем ваши представления или контроллеры представления публикуют это уведомление, когда происходит событие касания. Все наблюдатели примут меры по уведомлению.

0 голосов
/ 07 августа 2009

Способ сделать это - использовать класс Singleton (который действует как наблюдатель / посредник), примером которого является приложение, в котором у вас есть viewControllers, на которые вы подписываетесь, когда они вставляются в события касания определенного Посмотреть. Когда происходит касание, класс Singleton информируется о событии, в результате он информирует всех подписчиков о событии события. Вот пример

   @interface MyEventClass
  {

  -(void)TouchEventDidOccur; 
  -(void)subscribeToTouchEvent:(id)delegate selector(selector):sel
  }

Над классом-одиночкой

теперь это пример того, как может выглядеть метод метода touchsBegan

-(void)touchesBegan...
{
    [[MyEventClass sharedInstance] TouchEventDidOccur];
}

и как подписаться на событие

 [[MyEventClass sharedInstance] subscribeToTouchEvent:self selector:@selector(receiveTouchEvent:)]

надеюсь, это поможет

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