Ios Objective-C Mapview只工作一次
我的地图视图有问题。当我转到视图时,它可以工作,但当我转到另一个视图并返回到地图视图时,它不再工作。我在NSLog()时得到了正确的纬度和经度,所以这不是问题所在 代码:Ios Objective-C Mapview只工作一次,ios,objective-c,Ios,Objective C,我的地图视图有问题。当我转到视图时,它可以工作,但当我转到另一个视图并返回到地图视图时,它不再工作。我在NSLog()时得到了正确的纬度和经度,所以这不是问题所在 代码: 根据您显示的内容,您不断添加地图视图(每次VC出现时都会添加一个新的地图视图) 你好像忘了把它取下来 为什么要在ViewDidDisplay中分配地图视图?如果未在视图上删除地图视图,它将在屏幕上多次添加地图视图。如果未删除已添加的地图视图,则可以使用 -(void)viewWillExample方法删除类似的贴图 - (vo
根据您显示的内容,您不断添加地图视图(每次VC出现时都会添加一个新的地图视图)
你好像忘了把它取下来 为什么要在ViewDidDisplay中分配地图视图?如果未在视图上删除地图视图,它将在屏幕上多次添加地图视图。如果未删除已添加的地图视图,则可以使用 -(void)viewWillExample方法删除类似的贴图
- (void)viewWillAppear:(BOOL)animated
{
if(map != nil)
{
[map removeFromSuperview];
}
}
它将在添加新地图之前删除以前的地图视图将此代码添加到您的视图中:
-(void)viewDidDisappear:(BOOL)animated {
if(mapView)
{
[mapView removeFromSuperview];
}
}
}
还要删除所有子视图,请执行以下操作:
-(void)viewWillAppear:(BOOL)animated {
for (UIView *view in self.subviews) {
[view removeFromSuperview];
}
}
像这样试试可能会有帮助
- (void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:(BOOL)animated];
if(IS_IPHONE5) {
if (mapView == nil){
mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0,300,320,300)];
[mapview setDelegate:self];
}
} else {
if (mapView == nil){
mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0,250,320,250)];
[mapview setDelegate:self];
}
}
//Add ramaining Code
}
VIEWDID代码
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:(BOOL)animated];
[mapView removeFromSuperview];
mapView = nil;
}
视图显示:如果mapview nil,则我们正在创建mapview,否则不会
ViewDidEnglish:如果我们离开视图,我们将删除地图感谢您的反应,但是如果ViewDidEnglish不好,我必须将其放在哪里?尝试将此添加到ViewWill Appelled我的答案。希望这有帮助。它说“未找到属性子视图”。谢谢你的帮助!在viewDidLoad中创建并添加地图视图。如果需要,可以重置区域并在ViewDidDisplay中添加注释。
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:(BOOL)animated];
[mapView removeFromSuperview];
mapView = nil;
}