0

我的 DetailViewController 的笔尖上有一个 MapView,但是每当我在将其推送到导航控制器堆栈之前尝试在不同的视图控制器中访问该属性时,我都会发现该属性仍然为零,所以什么也没有发生。有谁知道为什么会发生这种情况?UIImageViews 也发生在我身上,这不仅仅是地图视图。(Xcode 5,ios7)

DetailViewController *dvc = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];

CLLocationCoordinate2D zoomLocation = [[AppDelegate sharedLocationManager] location].coordinate;
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, 0.5*METERS_PER_MILE, 0.5*METERS_PER_MILE);
[dvc.mapView setRegion:viewRegion animated:YES];

MomentAnnotation *myAnnotation = [[MomentAnnotation alloc] init];
myAnnotation.coordinate = zoomLocation;
myAnnotation.title = @"Photo";
[dvc.mapView addAnnotation:myAnnotation];

[self.navigationController pushViewController:dvc animated:YES];
4

1 回答 1

0

在 iOS 7 中,视图在内存中加载有点晚,或者我们可以说 ViewDidLoad 方法调用有点晚。因此,当您尝试设置 UI 属性时,您可能会将它们设为 nil。因此,在确认视图元素已准备好之后设置值会更好。presentViewController 方法提供了完成处理程序,您可以在其中设置属性值。[dvc 视图] 在设置属性之前调用此方法。如果不是,这将在内存中加载视图。另一种方法是在推送视图控制器后设置属性

于 2013-09-24T22:32:30.483 回答