Старое название вопроса: Как захватить события в родительских UIViews, таких как слои HUD?
Я пытаюсь написать игру, используя UI Framework, а не cocos2d.
Я хотел бычтобы сделать View partials правильно обработанным.Это кажется невозможным.
Под частичными представлениями я имею в виду способ, которым Ruby on Rails (и другие языки) позволяет вам иметь небольшие куски уровня представления (код представления), которые появляются в большей частислой представления (вид кода).
В игре есть слой HUD с оценкой сверху (и другими метаданными), и я использую
[self.view addSubview:y]
или [self.navigationController push...]
Визуально это будет выглядеть так (не в масштабе):
+----------------------------+
|A |
|+--------+ +------------+ |
||B | |C | |
|| | | | |
|+--------+ | | |
| | | |
| +------------+ |
+----------------------------+
- В разделе A есть кнопки, относящиеся к главному меню (основная навигация)
- В разделе B есть кнопкиза счет и т. д.
- Раздел C является основной игровой областью
Как Раздел A, так и Раздел B являются слоями HUD, они должны иметь интерактивные события, где это необходимо.
Я не хочу повторять один и тот же код снова и снова, поэтому я чувствую, что система HUD, в которую я включаю представления, которые я хочу видеть в окне, должна быть лучшим способом для достижения этой цели.
ПроблемаУ меня есть то, что, если я включу мой файл HUD.h / HUD.mВ любом другом контроллере View я больше не могу принимать щелчки для Разделов A или B в Разделе C и не могу заставить его выполнять действия по событию, так как он всегда жалуется, что метод не существует в Разделе C.
Если я нахожусь в представлении Раздела C, я должен принимать щелчки от A и B и обрабатывать их надлежащим образом.
Таким образом, каков наилучший способ захвата событий с помощью многоуровневой системы HUD и соответствующей обработки событий?
Наиболее близким, что я видел, возможно, является использование touchesBegan, но я не совсем понимаю, как связать события touchesBegan с событиями, которые находятся в контроллере Раздела A / B.
Спасибо.