我的DetailViewController在它的nib上有一个MapView,但每当我尝试在不同的viewcontroller中访问该属性之后我将它推到导航控制器堆栈上,我发现该属性仍为零,所以没有任何反应。有谁知道为什么会发生这种情况? UIImageViews也发生了这种情况,它不仅仅是mapviews。 (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];
答案 0 :(得分:0)
在iOS 7中,视图在内存中加载了一点,或者我们可以说ViewDidLoad方法调用后一位。因此,当您尝试设置UI属性时,您可能会将它们设置为零。因此,在确认视图元素准备就绪后,您将更好地设置值。 presentViewController方法提供了完成处理程序,您可以在其中设置属性值。 [dvc view]在设置属性之前调用此方法。如果不是,这将在内存中加载视图。另一种方法是在推送视图控制器
之后设置属性