在我发布这个问题之后,我实现了一个额外的视图,总共 3 个,所以我最初的问题是不同的。到目前为止,我最初的观点有一个叫做艺术的类别。通过以下方式达到艺术观点:
例如,我的第一个视图使用以下内容打开我的“艺术”视图。
-(void)mainButton
{
if ([mlabel.text isEqualToString: @" Arts " ])
{
[self performSegueWithIdentifier:@"Arts" sender:self];
}
}
在我的艺术视图中,我将艺术场地的坐标放到我的第三个视图(地图)中,如下所示:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
FlipsideViewController *viewController = segue.destinationViewController;
viewController.delegate = self;
NSString *str;
if ([[segue identifier] isEqualToString:@"showAlternate"])
{
[[segue destinationViewController] setDelegate:self];
}
if ([mlabel.text isEqualToString: @" Burlington City Arts "])
{
CLLocationCoordinate2D location;
location.latitude = (double) 44.476625;
location.longitude = (double) -73.212827;
str = [NSString stringWithFormat:@"%.2f, %.2f", location.latitude, location.longitude];
viewController.stringToDisplay = str;
}
}
上面代码中发生的事情是我声明 stringToDisplay 来存储坐标并将其发送到第三个视图。我使用标签并说如果我的pickerview标签等于短语“Burlington City Arts”,那么通过我的“str”NSString将坐标从那个特定的地方发送到我的第三个视图。
最后,我想在那个地方放一个别针的第三个视图的代码:
if ([self.stringToDisplay isEqualToString: @"44.48, -73.21"])
{
location.latitude = (double) 44.476625;
location.longitude = (double) -73.212827;
MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc] initWithTitle:@"newAnnotation" andCoordinate:location];
[self.mapView addAnnotation:newAnnotation];
[mapView setCenterCoordinate:location animated:YES];
}
我的 stringToDisplay 在上面的代码中将带有坐标的 str NSString 传输到地图视图(第三个视图),但是,这些值是四舍五入的,所以我所做的就是将四舍五入的数字放入我的 IF 语句中。之后,我再次指定了要放置的别针的确切坐标。达达!
*****UPDATE*****
与其在视图 2 和 3 中重复坐标,我现在意识到最好的方法是重新声明每个场地的标签,并将该标签名称传递给第三个视图,这样就不会与坐标混淆。这些坐标在第三个地图视图中只指定一次,这很好。我在我的 stringToDisplay 字符串中传递标签名称,如下所示:
if ([mlabel.text isEqualToString: @" The S.P.A.C.E. Gallery "])
{
viewController.stringToDisplay = @" The S.P.A.C.E. Gallery ";
}