Модальные взгляды и штрихи начались - PullRequest
2 голосов
/ 13 июля 2010

Данный вопрос является следствием следующего:

UITouch - событие не отвечает

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

У меня есть RootViewController, и из этого я загружаю второй ViewController, используя следующий код:

[self presentModalViewController:newWorkoutViewController animated:YES];

У меня есть следующий код в NewWorkoutViewController:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"New Workout Screen tapped");
}

Этот метод не используется, я думаю, это потому, что это модальное представление. Есть ли в любом случае обнаруживать нажатия на экран в модальном виде.

Спасибо Стивен

Ответы [ 3 ]

2 голосов
/ 13 июля 2010

Определите соответствующие методы на вашем контроллере представления, а не на вашем представлении.

1 голос
/ 13 июля 2010

События отправляются в ViewController, только если в представлении нет элементов управления для получения событий. Например, если у вас есть кнопка в вашем виде, и вы нажимаете кнопку, кнопка получает событие касания, а не ViewController.

ОС определяет, куда отправлять события, используя метод pointInside: withEvent: и затем вызывая hitTest: withEvent: Возможно переопределить их в вашем представлении и посмотреть, какие объекты получают события.

Кроме того, hitTest: withEvent:

игнорирует любые скрытые представления, которые отключили взаимодействие с пользователем или имеют уровень альфа менее 0,1.
1 голос
/ 13 июля 2010

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

...