【发布时间】:2011-10-14 21:21:33
【问题描述】:
单击标注按钮后,我试图将字符串变量从地图视图控制器传递到详细视图控制器。我取了标注按钮的标题并将其存储在一个 NSString 对象中(已在 Map View Controller 中合成)。
然后我在详细视图控制器中分配并初始化地图视图控制器,并尝试在新视图控制器中记录该值一次,它返回为空。代码如下:
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view
calloutAccessoryControlTapped:(UIControl *)control
{
TheLocations *annotationTapped = (TheLocations *)view.annotation;
NSLog(@"button clicked on annotaion %@", annotationTapped);
MapViewController *thisMap = (MapViewController *)[[UIApplication sharedApplication] delegate];
DetailViewController *dvc = [[DetailViewController alloc]initWithNibName:@"DetailViewController" bundle:nil];
dvc.title = view.annotation.title;
pinTitle = dvc.title;
NSLog(@"%@", pinTitle);
[thisMap switchViews:self.view toView:dvc.view];
}
这会成功记录“pinTitle”的值。 pinTitle 已经创建并合成,所以是这个 Map View 的字符串。
现在,我切换到详细视图,并将这段代码输入到 viewDidLoad 方法中:
MapViewController *mvc = [[MapViewController alloc]initWithNibName:@"MapViewController" bundle:nil];
NSLog(@"%@", mvc.pinTitle);
它识别“pinTitle”并允许它注销但返回“(null)”,因此在某处丢失了 pinTitle 的值。切换视图时如何让 pinTitle 保留其价值?非常感谢您的帮助!
【问题讨论】:
标签: xcode variables nsstring android-mapview