地址簿和地图套件

发布于 2024-07-30 09:00:35 字数 384 浏览 6 评论 0原文

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

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

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

I am writing an app for iPhone iOS 3.0, where I want to use Map Kit and Address Book together. I have a database of places (restaurants, for example) with name, location, phone, address and some other data. I list them in a table view and when I choose some place I want to show Address Book Contact (with the help of ABUnknownPersonViewController), containing all information, so it is easy for user to add this contact to Address Book.

Now when I click on the address, the app switches me to Maps app. How can I catch this event to show it in my MKMapView (in my app internally)?

One more related question. Is there a way to implement "Direction from here", "Direction to here" buttons in standard Address Book Controller like in Maps app?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

橘味果▽酱 2024-08-06 09:00:35

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

For the related question, direction from here and to here, you can use the URL http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f where you replace the %f's with latitude and longitude of start address (saddr) and destination address (daddr) of your likings. You can fetch the 'here' from the user location's latitude and longitude. This link will open in the default Maps application, but will show directions. HTH

一梦浮鱼 2024-08-06 09:00:35

拦截 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;
}

Intercept the default action in ABUnknownPersonViewController's delegate method to prevent switching to the Maps app:

// 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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文