我會盡力保持這個很簡單:從管腳的註解披露獲取座標,自來水
我很新的Objective-C(或編程實際上),所以我可能會需要一個解釋不止只是一個答案。
我想要做和不能做什麼(還): 獲取點擊它的信息披露後,銷的協調,並最終通過它通過SEGUE。 實際上,我點擊了我剛剛創建的針上的「信息」圖標,並且希望看到它是另一個頁面(網絡視圖)中的信息。此頁面將顯示座標(以及我們在此不需要的其他內容)。
爲什麼: 實際上,我點擊用戶之前創建一個引腳的註解我的「信息」圖標,我想看看它在另一個網頁(網頁視圖)的信息。此頁面將顯示座標(以及我們在此不需要的其他內容)。
我銷座標被存儲到
CLLocationCoordinate2D位置;
我不能再次使用,因爲它們可能已過時我之前使用的變量(如果用戶要求創建的最後一個...它只會工作) 我不知道我可以得到一個pin的座標;必須有一種方法或某種東西,但我只是找不到它。我在網上找到很多答案,而且似乎沒有任何工作,可能是因爲我沒有正確理解它們。無論如何,我無法使用它們。
我會告訴你我的代碼位,這是很簡單的我猜:
還有就是viewDidLoad中,你可能想看到它,我想:
- (void)viewDidLoad
{
[super viewDidLoad];
name = [[NSString alloc]init];
detail = [[NSString alloc]init];
UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longpressToGetLocation:)];
lpgr.minimumPressDuration = 2.0; //user must press for 2 seconds
[_map addGestureRecognizer:lpgr];
CLLocationCoordinate2D loc = CLLocationCoordinate2DMake(50.837863, 4.353616);
MKCoordinateSpan span = MKCoordinateSpanMake(.035, .035);
MKCoordinateRegion reg = MKCoordinateRegionMake(loc, span);
self.map.region = reg;
[self buildBaseAnno];
self.map.showsUserLocation = true;
}
我知道這很重要,但說實話,我不完全理解這個位是如何工作的;但它仍然有效。 :d
-(MKAnnotationView*)mapView:(MKMapView*)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
MKAnnotationView* v = nil;
{
static NSString* ident = @"Pin";
v = [_map dequeueReusableAnnotationViewWithIdentifier:ident];
if (v == nil)
{
v = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:ident];
((MKPinAnnotationView*)v).pinColor = MKPinAnnotationColorRed;
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
v.rightCalloutAccessoryView = infoButton;
v.centerOffset= CGPointMake(0,-20);
v.canShowCallout= YES;
}
v.annotation = annotation;
}
return v;
}
觸針創建:
- (void)longpressToGetLocation:(UIGestureRecognizer *)gestureRecognizer
{
if (gestureRecognizer.state != UIGestureRecognizerStateBegan)
return;
CGPoint touchPoint = [gestureRecognizer locationInView:self.map];
location = [self.map convertPoint:touchPoint toCoordinateFromView:self.map];
[self showAlertName];
}
實際的註解/針的創建方法
-(void)buildAnno
{
CLLocationCoordinate2D coordinate;
coordinate.latitude = location.latitude;
coordinate.longitude = location.longitude;
MKPointAnnotation* newann = [MKPointAnnotation new];
newann.coordinate = coordinate;
newann.title = name;
newann.subtitle = detail;
[self.map addAnnotation:newann];
}
請你告訴我們,如果你需要更多的代碼;我不確定我可以給你什麼,因爲我的代碼可能是'正確的'(或體面的),我只需要真正知道如何獲得我需要的信息(也就是座標和其他東西只是點擊。)
而我實際上不點擊引腳,我點擊引腳的註釋披露。無論如何,這就夠了!
一旦我可以捕捉到這些座標,我相信我將能夠通過它們傳遞數據,因爲傳遞數據已經在這裏得到了很好的解釋,但是如果有什麼'特殊'的話,我會很高興可以將它添加到你的解釋中,因爲我仍然對這一切感到非常不舒服,而且我發現的大多數教程/指南/鏈接都沒有真正幫助我。
非常感謝您的時間和幫助:)
(編輯:我發現了一個類似的問題here但我相信我需要額外的幫助/解釋。)
謝謝你,這工作得很好:) –