UIAlertview ve MapKit kullanımı
Merhaba arkadaşlar,
Bir projede benden önce UIAlertview yerine MBAlertview kullanılmış, ancak bu kütüphane iphone 5s lerde sorun oluşturuyor. Ekrana gelen uyarıda butonların yazıları görünmüyor. MBAlertview kullanılan yerleri UIAlertview ile değiştirdiğimde sorun çözülüyor. Ancak eğer uyarı ekranındaki butonlar bir fonksiyon çalıştırıyorsa onu çözmek için delegate kullanmam gerekiyor... Maalesef onda da bir yerde kafam karıştı. Method içinde method yazmam gerekiyor gibi bir durum oluştu, kodları paylaşıyorum... Aşağıdaki kod için UIAlertview i kullanabilirsem sorun kalmayacak..
[code]
+ (void)startNavigationAppWithTargetLocation:(CLLocationCoordinate2D)targetLocation destinationName:(NSString *)destinationName
{
MBAlertView *alert = [MBAlertView alertWithBody:@"Yol tarifi uygulamasına geçmek istediğinizden emin misiniz?" cancelTitle:@"Hayır" cancelBlock:nil];
[alert addButtonWithText:@"Evet" type:MBAlertViewItemTypePositive block:^{
Class itemClass = [MKMapItem class];
if (itemClass && [itemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)]) {
// iOS 6 MKMapItem available
MKPlacemark* place = [[MKPlacemark alloc] initWithCoordinate:targetLocation addressDictionary:nil];
MKMapItem* destination = [[MKMapItem alloc] initWithPlacemark:place];
destination.name = destinationName;
NSArray* items = [[NSArray alloc] initWithObjects: destination, nil];
NSDictionary* options = [[NSDictionary alloc] initWithObjectsAndKeys:
MKLaunchOptionsDirectionsModeDriving,
MKLaunchOptionsDirectionsModeKey, nil];
[MKMapItem openMapsWithItems:items launchOptions:options];
}
else
{
[SVProgressHUD showWithStatus:@"Koordinatlar alınıyor." maskType:SVProgressHUDMaskTypeBlack];
[[DMLocationManager shared] obtainCurrentLocationAndReverse:NO withAccuracy:kCLLocationAccuracyBest useCache:NO completition:^(CLLocation *location, CLPlacemark *placemark, NSError *error) {
if (!error)
{
[SVProgressHUD dismiss];
NSString *stringURL = [NSString stringWithFormat:@"http://maps.google.com/maps?saddr=%g,%g&daddr=%g,%g", location.coordinate.latitude, location.coordinate.longitude, targetLocation.latitude, targetLocation.longitude];
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
}
else
{
[SVProgressHUD dismiss];
// Display error message.
MBAlertView *errorAlert = [MBAlertView alertWithBody:@"Koordinatlar saptanamadı" cancelTitle:@"Tamam" cancelBlock:nil];
[errorAlert addToDisplayQueue];
}
}];
}
}];
[alert addToDisplayQueue];
}
[/code]