首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS9本机拨号程序在调用shouldPerformDefaultActionForPerson之前显示。

iOS9本机拨号程序在调用shouldPerformDefaultActionForPerson之前显示。
EN

Stack Overflow用户
提问于 2015-10-01 12:08:18
回答 1查看 396关注 0票数 1

在升级到iOS9后,我注意到我的应用程序中有不同的行为。我有一个视图显示手机的设备联系人。

我的代码如下:

代码语言:javascript
复制
if (... == YES)
    {
        ABRecordSetValue(aContact, kABPersonEmailProperty, email, &anError);
        if (anError == NULL)
        {
            ABUnknownPersonViewController *picker = [[ABUnknownPersonViewController alloc] init];
            picker.unknownPersonViewDelegate = self;
            picker.displayedPerson = aContact;
            picker.allowsAddingToAddressBook = YES;
            picker.allowsActions = YES;
            picker.alternateName = @"John Appleseed";
            picker.title = @"John Appleseed";
            picker.message = @"Company, Inc";

            [self.navigationController pushViewController:picker animated:YES];
        }

然后我用代表来做一些决定

代码语言:javascript
复制
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person 
                                property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
    {
        //make decisions 
        return YES or NO;
    }

用户点击一个电话号码。

In IOS8 >>代码到达shouldContinueAfterSelectingPerson,然后出现本机拨号程序。

In IOS9 >>本机拨号程序出现在代码到达shouldContinueAfterSelectingPerson之前。

有办法解决吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-07 17:09:23

我也面临着同样的问题。我注意到的是,如果您在委托方法中执行某些计算(显然需要一些时间来进行计算),则调用本机拨号程序。

因此,为了避免这个问题,我将立即从这个委托方法返回NO,并在另一个线程中执行我的计算。这当然是一个解决办法,希望在下一个版本的iOS中解决这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32887251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档