MKMapView, не разрешающий взаимодействие с пользователем на Ipod Touch OS 3.1.3, корректно работает на симуляторе 3.2 / 4.0 - PullRequest
0 голосов
/ 02 сентября 2010

Я кодировал и тестировал приложение, которое использует контроллер навигации, панель вкладок и представления таблиц вместе, как показано в этом видео-уроке:

Я также кодировал страницу MapView, которая показывает пользовательские аннотации.Кажется, это работает нормально в каждой версии симулятора, на котором я его пробовал.Этим утром у меня наконец-то появилось приложение, работающее на моем Ipod Touch, работающем под управлением ОС 3.1.3 - все работает, как и ожидалось, за исключением того, что карта вообще не позволяет взаимодействовать с пользователем.Я не могу нажать на аннотации, текущее местоположение или перемещение и масштабирование вообще.

Я прошел все настройки в Интерфейсном Разработчике для просмотра карты и убедился, что все флажки «Взаимодействие с пользователем», «Разрешить мультисенсор» отмечены.Кажется, это ничего не меняет.

Любая помощь очень ценится.

Вид карты отображается в следующем виде:

// Grab the maps view controller ready for loading
MapView *childController = [[MapView alloc] initWithNibName:@"MapView" bundle:nil];
childController.title = @"View on Map";

// Push the new view controller onto the stack
[self.navigationController pushViewController:childController animated:YES];

[childController release];
childController = nil;

Я также пыталсязапуск представления в контроллере модального представления, чтобы посмотреть, что произойдет.Представление было показано, и любое взаимодействие, похоже, не работало - за исключением небольшого участка внизу, где я сделал само представление немного короче, чтобы оно помещалось над панелью вкладок.Кажется, в этом разделе есть другая карта под моим видом, которая реагирует на взаимодействие с пользователем.Таким образом, есть 1-сантиметровый блок, который движется - хотя мой вид, кажется, остается неподвижным поверх него.

Вид внизу не имеет аннотаций или текущего местоположения пользователя.

1 Ответ

0 голосов
/ 02 сентября 2010

Хорошо, я решил это:

В файле mapview.m, где я настраивал представление и загружал аннотации, в функции viewDidLoad у меня был следующий код:

- (void)viewDidLoad {

    // More code before this..

    [mapView addAnnotations: eventPoints];

    // This is causing the problems on the ipod touch.
    // The view is added ON TOP of the first map..
    //[self.view addSubview:mapView];
    self.view = mapView;

    // More code after this..
}

Где mapView

IBOutlet MKMapView *mapView;

Добавление подпредставления поверх текущего представления не хотело работать.На самом деле установка представления как нового обновленного представления с аннотациями, кажется, работает нормально.Все же странно, что симулятор будет работать, а не устройство в первую очередь.

Надеюсь, это кому-нибудь поможет.

...