问题描述
|
我的头文件:
@interface MapViewController : UIViewController <MKMapViewDelegate,NSFetchedResultsControllerDelegate>
{
MKMapView *mapView;
NSFetchedResultsController *fetchedResultsController;
NSManagedobjectContext *managedobjectContext;
}
@property (nonatomic,retain) MKMapView *mapView;
@property (nonatomic,retain) NSFetchedResultsController *fetchedResultsController;
@property (nonatomic,retain) NSManagedobjectContext *managedobjectContext;
我也在.m文件中进行合成。
在我的viewDidLoad函数中,我有这个(视图通过父控制器中的动画淡入):
- (void)viewDidLoad
{
[super viewDidLoad];
mapView = [[MKMapView alloc] initWithFrame:self.view.frame];
mapView.mapType = MKMapTypeSatellite;
mapView.delegate = self;
self.view = mapView;
[self.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
self.view.alpha = 0.0;
MKCoordinateRegion region;
MKCoordinateSpan span;
region.center.latitude = 42.764705;
region.center.longitude = -94.047375;
span.latitudeDelta=.02;
span.longitudeDelta=.02;
region.span = span;
[mapView setRegion:region animated:YES];
NSLog(@\"Change this1\");
}
这很好。
我还有另一个功能:
- (void)setinitialMapView
{
MKCoordinateRegion region;
MKCoordinateSpan span;
region.center.latitude = 32.764705;
region.center.longitude = -84.047375;
span.latitudeDelta=50.0;
span.longitudeDelta=50.0;
region.span = span;
[mapView setRegion:region animated:YES];
NSLog(@\"Change this 2\");
}
动画制作完成后,我将其称为第二个函数。
第二个功能不会更改地图的区域,但会打印到日志。因此正在调用该函数。
我在这里做错了什么?
解决方法
不知道这是否是您的问题的根源,但绝对似乎是,或者可能是在促成...
您的viewDidLoad中的这一行不好:
self.view = mapView;
我建议使用addSubview将地图视图添加为self.view的子视图(docs)
我不知道做你做过的事会对你有什么影响……但是我有一种感觉,那就是他们不好。
如果您需要使根视图成为MKMapView,我相信这应该在loadView方法中完成,如此处所述。