首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >取消CNContactPickerViewController按下呼叫按钮

取消CNContactPickerViewController按下呼叫按钮
EN

Stack Overflow用户
提问于 2017-08-11 12:19:04
回答 1查看 527关注 0票数 0

比方说,我们有一个简单的应用程序,它有一个视图控制器和一个单条按钮项,可以打开CNContactPieckerViewController。因此,我进入选择视图,选择联系人,输入详细信息视图。如果在我的视图控制器中有contactPicker:didSelectContactProperty:委托方法的实现,按下call按钮将调用委托方法,CNContactPickerViewController将被取消,对于调用,我需要在委托方法中手动处理所有事情。但是,如果contactPicker:didSelectContactProperty:委托方法没有实现,就会进行呼叫(根据您选择的是什么类型的呼叫-- GSM、WhatsApp或其他什么),但是CNContactPickerViewController不会被拒绝。

问题

是否有可能在不失去处理调用的功能的情况下拒绝CNContactPickerViewController

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-12 07:47:54

您可以在两种状态的调用连接和断开时添加观察者,并可以取消CNContactPickerViewController控制器。但我建议使用contactPicker:didSelectContactProperty :委托来实现此功能。

1.导入CallKit框架

#import <CallKit/CXCallObserver.h>

#import <CallKit/CXCall.h>

2.符合CXCallObserverDelegate协议。

3.强烈引用CXCallObserver对象,如

@property (nonatomic, strong) CXCallObserver *callObserver;

4.在表示callObserver对象时初始化CNContactPieckerViewController对象,如

CXCallObserver *callObserver = [[CXCallObserver alloc] init]; [callObserver setDelegate:self queue:nil]; _callObserver = callObserver;

5.最后实现委托方法。

代码语言:javascript
运行
复制
-(void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call {
    if (call.hasConnected) {
        NSLog(@"********** voice call connected **********/n");

    } else if(call.hasEnded) {
        [(your CNContactPieckerViewController object) dismissViewControllerAnimated:YES completion:nil];
        NSLog(@"********** voice call disconnected **********/n");

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

https://stackoverflow.com/questions/45635084

复制
相关文章

相似问题

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