MKMapViewDelegate를 사용하는 간단한 방법을 작성했으며 xcode 5 시뮬레이터에서 사용자 위치를 표시하는 데 문제가 있습니다. 필자는 이전 뷰 컨트롤러의 단추를 누르고 해당 UIViewController 클래스를 만든 후에 코드를 실행해야한다는 것을 알고 있습니다. 그러나 버튼을 누르고지도 뷰가있는 View Controller를 스택에 푸시하면 줌이없고 위치가없는지도가 표시됩니다. 단일보기 독립 실행 형 앱과 동일한 코드를 실행하면 잘 작동합니다. 지도를 가져 와서 사용자의 현재 위치 (시뮬레이터의 샌프란시스코 본사)로 확대하거나 추가하려면 무엇을해야합니까? 여기에 제가 사용하는 코드가 있습니다.mapView 메서드는지도를 표시하지만 아무 것도 수행하지 않습니다.
헤더 :
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
@interface SPMenuViewController : UIViewController <MKMapViewDelegate>
@property (strong, nonatomic) IBOutlet MKMapView *myMapView;
@end
구현 : 나는 이전보기가 "푸시"SEGUE에 의해 연결되어있는 네비게이션 컨트롤러와있는 UIButton 클래스에 포함되는 것은 아니다 생각
#import "SPMenuViewController.h"
@interface SPMenuViewController()
@end
@implementation SPMenuViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.myMapView.delegate = self;
[self.myMapView setShowsUserLocation:YES];
}
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
// Coords
CLLocationCoordinate2D myLocation = [userLocation coordinate];
// Zoom Region
MKCoordinateRegion zoomRegion = MKCoordinateRegionMakeWithDistance(myLocation, 2500, 2500);
// Show Location
[self.myMapView setRegion:zoomRegion animated:YES];
}
지도보기가 포함 된보기 컨트롤러. 감사합니다.
myMapView IBOutlet이 스토리 보드의 맵보기 컨트롤에 실제로 연결되어 있는지 확인하십시오. – Anna