Смахните мапкит с экрана

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

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

Спасибо

СЛЕДУЮЩИЙ КОД РАБОТАЕТ:

(1) В файле заголовка контроллера представления карты я добавил UIGestureRecognizerDelegate для поддержки своего протокола.

(2) В файле .m контроллера представления карты я добавил

- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 
   shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

(3) В контроллерах представления карты я добавил метод viewDidLoad:

UISwipeGestureRecognizer *leftSwipe = 
[[[UISwipeGestureRecognizer alloc] 
  initWithTarget:self action:@selector(leftSwipeReceiver:)] autorelease];
leftSwipe.direction = UISwipeGestureRecognizerDirectionLeft;
leftSwipe.delegate = self;
[self.view addGestureRecognizer:leftSwipe];

(4) Эта функция слежения вызывается для свайпа влево

- (void)leftSwipeReceiver:(UIGestureRecognizer *)recognizer
{
    NSLog(@"leftSwipeReceiver:");

}

person user675823    schedule 04.10.2011    source источник
comment
Вы можете использовать UISwipeGestureRecognizer и потребовать, скажем, двух касаний для удаления, чтобы пользователь все еще мог провести пальцем по карте, но это не кажется естественным. Как пользователь узнает об этом? Если у вас есть место для отображения текста справки, просто поместите туда кнопку.   -  person    schedule 04.10.2011
comment
Это действительно хороший вопрос, как пользователь узнает об уходе. Я также борюсь с этим. Пользователь может переходить от другого представления к представлению карты, поэтому я хотел, чтобы он вел себя аналогично. Также я экспериментировал с реализацией UISwipeGestureRecognizer, события свайпа вроде бы не попадают в указанные обработчики, а перехватываются представлением карты.   -  person user675823    schedule 05.10.2011
comment
Чтобы предотвратить перехват, вам нужно реализовать shouldRecognizeSimultaneouslyWithGestureRecognizer и вернуть YES. См. нижнюю половину этого answer, который объясняет, как с UITapGestureRecognizer, но это та же идея.   -  person    schedule 05.10.2011
comment
Большое спасибо, позвольте мне попробовать и обновить обратно ...   -  person user675823    schedule 05.10.2011
comment
Не получилось (пока). Почему эта область редактирования не принимает возврат к строке изменения?   -  person user675823    schedule 05.10.2011
comment
Поскольку я не мог добавить сюда больше текста, я добавил больше информации в свой исходный вопрос. См. выше.   -  person user675823    schedule 05.10.2011
comment
Анна Каренина: Ты мой герой. Код, который я добавил к исходному сообщению, действительно работал!!! Спасибо...   -  person user675823    schedule 05.10.2011