3

我正在为 iPhone iOS 3.0 编写一个应用程序,我想在其中一起使用 Map Kit 和地址簿。我有一个包含名称、位置、电话、地址和其他一些数据的地点(例如餐馆)数据库。我在表格视图中列出它们,当我选择某个地方时,我想显示地址簿联系人(在 的帮助下ABUnknownPersonViewController),其中包含所有信息,因此用户可以轻松将此联系人添加到地址簿。

现在,当我单击地址时,应用程序会将我切换到地图应用程序。如何捕获此事件以在我的MKMapView(在我的应用程序内部)中显示它?

还有一个相关的问题。有没有办法像地图应用程序一样在标准通讯簿控制器中实现“从这里的方向”、“到这里的方向”按钮?

4

2 回答 2

0

对于相关问题,从这里到这里的方向,您可以使用 URL http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f将 %f 替换为纬度以及您喜欢的起始地址 (saddr) 和目标地址 (daddr) 的经度。您可以从用户位置的纬度和经度中获取“此处”。此链接将在默认地图应用程序中打开,但会显示路线。高温高压

于 2009-08-05T11:29:21.210 回答
0

拦截 的委托方法中的默认操作,ABUnknownPersonViewController以防止切换到地图应用:

// ABUnknownPersonViewControllerDelegate protocol conformance
- (BOOL)unknownPersonViewController:(ABUnknownPersonViewController *)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
{
    // Allow the default action to occur.
    BOOL shouldPerformDefaultAction = YES;

    // If address property was selected, do not switch to the Maps.app.
    if (property == kABPersonAddressProperty)
    {
        [self.navigationController popViewControllerAnimated:YES];

        // Do not perform the default action    
        shouldPerformDefaultAction = NO;

        // Show your MKMapView here
        // ....
    }

    return shouldPerformDefaultAction;
}
于 2012-01-06T10:15:59.623 回答