2012-12-27 74 views
-4

我是一個剛剛開始嘗試xcode的業餘程序員。 我在Google上搜尋一個答案,在我的應用程序中找到當前問題的答案。 (我會在一點。) 我在這裏找到了一個很好的答案在Stackoverflow.com,雖然我不知道如何實現它到我自己的編碼。 (聯繫:Opening native google maps in Xcode我如何實現這個答案,我發現我自己的編碼?

被修改:基本上:我使用的TabBar應用中,其中在一個選項卡有一個MapView類,從中可以看到根據編碼我有這樣的事情混合,衛星等,並一個annunci針腳指向一個顯示位置的座標,當你點擊它時你可以看到一個按鈕。從這裏我不知道該怎麼做,因爲我想讓按鈕將您鏈接到您iphone上的「地圖」應用程序,爲您提供從當前位置到達目的地的路線。這個問題在我寫的鏈接中被問到。它收到了一個答案,但我不知道如何實現這個我自己的編碼。

這是我自己的代碼:

ViewController.h

#import <UIKit/UIKit.h> 
#import <MapKit/MapKit.h> 
@interface SecondViewController : UIViewController{ 
MKMapView *mapview; 
} 

@property (nonatomic, retain) IBOutlet MKMapView *mapview; 
-(IBAction)setMap:(id)sender; 
-(IBAction)getlocation; 

@end 

ViewController.m

#import "SecondViewController.h" 
#import "Annotation.h" 

@implementation SecondViewController 
@synthesize mapview; 
-(IBAction)getlocation { 
mapview.showsUserLocation = YES; 
} 
-(IBAction)setMap:(id)sender { 
switch (((UISegmentedControl *) sender).selectedSegmentIndex) { 
    case 0: 
     mapview.mapType = MKMapTypeStandard; 
     break; 
    case 1: 
     mapview.mapType = MKMapTypeSatellite; 
     break; 
    case 2: 
     mapview.mapType = MKMapTypeHybrid; 
     break; 
    default: 
     break; 
} 
} 


-(void)viewDidLoad { 



[super viewDidLoad]; 
[mapview setMapType:MKMapTypeStandard]; 
[mapview setZoomEnabled:YES]; 
[mapview setScrollEnabled:YES]; 
[mapview setDelegate:self]; 

MKCoordinateRegion bigBen = { {0.0, 0.0} , {0.0, 0.0} }; 
bigBen.center.latitude = 38.849977; 
bigBen.center.longitude = -122.519531; 
bigBen.span.longitudeDelta = 0.02f; 
bigBen.span.latitudeDelta = 0.02f; 
[mapview setRegion:bigBen animated:YES]; 

Annotation *ann1 = [[Annotation alloc] init]; 
ann1.title = @"Name"; 
ann1.subtitle = @"Street"; 
ann1.coordinate = bigBen.center; 
[mapview addAnnotation: ann1]; 
} 

-(MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation { 
MKPinAnnotationView *MyPin=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"current"]; 


UIButton *advertButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 
if ([[annotation title] isEqualToString:@"The Place"]) { 
    [advertButton addTarget:self action:@selector(BigBenClicked:) forControlEvents:UIControlEventTouchUpInside]; 
} 


MyPin.rightCalloutAccessoryView = advertButton; 
MyPin.draggable = NO; 
MyPin.highlighted = YES; 
MyPin.animatesDrop=TRUE; 
MyPin.canShowCallout = YES; 

return MyPin; 
} 

-(void)button:(id)sender { 

NSLog(@"Button action"); 

} 


@end 

乾杯!

+3

你的問題是什麼? – Till

+0

如何實現我在自己的編碼鏈接中找到的答案。 –

+1

我認爲你必須更具體 - 它不清楚你在這裏問什麼。 – Krease

回答

0

您已經設置了按鈕按下時的選擇器。只是實施該方法,它應該工作。

-(void)BigBenClicked:(id)sender { 
    NSURL *url = [self getURL]; 
    [[UIApplication sharedApplication] openURL:url]; 
} 
+0

就是這樣,我對編碼完全陌生,所以我不確定要在哪裏實施!呃! –

+0

看我的編輯。實現getURL方法,該方法返回在其他代碼中生成的URL。就那麼簡單。 –

+1

切換:「 - (void)button:(id)sender」? 因爲沒有可見的@interface來聲明扇區「getURL」(是的,我的代碼知識太深了) 乾杯真的想幫助我! –

相關問題