Вы можете использовать новый класс MKMapItem
для iOS 6. См. Документы Apple API здесь
В принципе, вы будете использовать что-то подобное, если будете направлять к месту назначения координаты (destCoordinate
):
MKPlacemark* place = [[MKPlacemark alloc] initWithCoordinate: destCoordinate addressDictionary: nil];
MKMapItem* destination = [[MKMapItem alloc] initWithPlacemark: place];
destination.name = @"Name Here!";
NSArray* items = [[NSArray alloc] initWithObjects: destination, nil];
NSDictionary* options = [[NSDictionary alloc] initWithObjectsAndKeys:
MKLaunchOptionsDirectionsModeDriving,
MKLaunchOptionsDirectionsModeKey, nil];
[MKMapItem openMapsWithItems: items launchOptions: options];
Чтобы поддерживать iOS 6+ и pre iOS 6 в одном коде, я бы рекомендовал использовать что-то вроде этого кода, который Apple имеет наMKMapItem
Страница документации API:
Class itemClass = [MKMapItem class];
if (itemClass && [itemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)]) {
// iOS 6 MKMapItem available
} else {
// use pre iOS 6 technique
}
Предполагается, что ваш SDK Xcode Base - это iOS 6 (или Последняя версия iOS ).
В этомдругой ответ, я предлагаю надежную технику для iOS 5.1 и ниже