addAnnotation不更新Map?

时间:2015-01-25 16:12:01

标签: ios objective-c mapkit

我创建了以下方法来将引脚添加到地图视图中。我试过调用它来添加单个引脚但是当我从另一个视图控制器调用它时什么也没做?

-(void)addPins:(NSDecimalNumber*) woX ycoord:(NSDecimalNumber*) woY {
    CLLocationCoordinate2D coordinate;
    coordinate.latitude = 35;
    coordinate.longitude = -80;
    MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init];
    [annotation setCoordinate:coordinate];
    [annotation setTitle:@"Title"];
    [self.mapView addAnnotation:annotation];
}

我可以从DetailViewController的viewDidLoad调用它,它将显示单个引脚:

[self addPins:woX ycoord:woY];

但是当我从MasterViewController调用它时没有任何显示,但会记录注释,所以我知道它已经运行了吗?

DetailViewController *firstController = [[DetailViewController alloc] init];  
[firstController addPins:woX ycoord:woY];

2 个答案:

答案 0 :(得分:0)

我认为这是因为当您调用[firstController addPins:woX ycoord:woY];时,地图对象尚未加载到内存中,您是否可以尝试在延迟后调用它[firstController performSelectorWithObjects:@[woX, woY] afterDelay:1.0f]

祝你好运

答案 1 :(得分:0)

安娜走在了正确的道路上。我正在创建DetailViewController的新实例。

我能够通过添加

解决它
@property (strong, nonatomic) DetailViewController *detailViewController;

到MasterViewController.h。然后只需致电

[self.detailViewController addPins:woX ycoord:woY desc:cellView];
在MasterViewController.m中