Я создаю игру, специально предназначенную для игры с использованием переключателя доступа. Игра динамически строит сетку кнопок на основе уровня, чтобы имитировать сетку значков iPad. С характером доступа к переключателю у меня не может быть кнопки «Назад», чтобы вернуться в главное меню, так как это будет учитываться в игре как кнопка и будет включено во вкладку через пользователя.
В идеале я хотел бы, чтобы пользователь мог вернуться в главное меню при длительном нажатии одной из кнопок переключения, я попытался прикрепить распознаватель жестов длительного нажатия к представлению, к которому были нарисованы кнопки, это отлично работало в симулятор, но не с нажатием кнопки доступа к переключателю, затем я попытался прикрепить его к каждой кнопке, опять же, это сработало в симуляторе, но не при реальном тестировании.
Вот код, который я использую, который работает в симуляторе.
Добавление UILongPressGestureRecognizer к кнопке.
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(UILongPressBack:)];
[self.button addGestureRecognizer:longPress];
Метод вызывается при длительном нажатии.
- (IBAction)UILongPressBack:(UILongPressGestureRecognizer*)sender {
if (sender.state == UIGestureRecognizerStateEnded) {
MainViewController * mainPage = [[MainViewController alloc]init];
[self presentViewController:mainPage animated:YES completion:nil];
}
}
Насколько я понимаю, элементы управления доступом к коммутатору работают так же, как клавиатура Bluetooth (именно так я сейчас и тестирую). При настройке кнопок доступа к переключателю я сопоставляю каждую из них с определенной клавишей клавиатуры.
Кто-нибудь знает, как я могу заставить это работать? Я подумал об отключении кнопки во время игры и повторном включении ее между уровнями, но тогда у пользователя не будет возможности вернуться в главное меню в середине игры, если они того пожелают, что, как мне кажется, было бы плохим дизайном.
Спасибо за любую помощь.