2012-03-02 64 views
3

我在xCode 4.2中有一个使用storyboard的项目。我正在使用mapkit框架。我试图通过用户使用segue选择的注释来定位弹出窗口。Postion在没有segue锚的mapkit注释上出现segue popover

这是我的。

if([view.annotation isKindOfClass:[ContentPoint class]]) { 
    NSLog(@"I see this in my log"); 

    [self performSegueWithIdentifier:@"ViewAudioSegue" sender:mapView.selectedAnnotations]; 
} 

这就要求正确SEGUE,但由于SEGUE具有的MapView的锚,在酥料饼在显示地图的钮与选择的注释不旁边。我尝试了不同的发件人(视图,地图等),但我得到了相同的结果。有没有办法以编程方式设置锚点?这是我得到的无锚手动设置错误“*终止应用程序由于未捕获的异常‘NSInternalInconsistencyException’,原因:‘UIStoryboardPopoverSegue必须从一个栏按钮项或图中呈现’”

回答

0

您也可以创建一个隐藏按钮,将弹出窗口的细节锚定到该按钮上,并在按钮被选定时将其放置在注释上。这是一个类似的解决方案,在一个单独的问题中使用tableview,我回答了https://stackoverflow.com/a/14514837/1712892。主要区别在于您必须计算屏幕上注释的位置并将anchorButton移到那里,然后在执行segue时将自定义注释作为发件人传递。我实际上是在同一个项目中这样做的。如果我有时间,我会在今晚晚些时候用例子来编辑它。