ABPeoplePickerNavigationController类不支持子类化

时间:2015-05-20 15:43:48

标签: ios

在使用ABPeoplePickerNavigationController时,didSelecPerson委托会在用户选择某个人时被调用,然后ABPeoplePickerNavigationController会自行解散。我需要在接收didSelectPerson电话时提供另一个视图控制器。问题是ABPeoplePickerNavigationController此阶段的动画解雇尚未完成。因此,下一个视图控制器的显示将生成错误。

如果我继承ABPeoplePickerNavigationController并覆盖:

-(void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion
{
    NSLog(@"%s", __PRETTY_FUNCTION__);
    [super dismissViewControllerAnimated:flag completion:completion];

    [self.myDelegate didDismissPickerCompletion];
}

这将解决问题。但Apple doc确实声明“ABPeoplePickerNavigationController类不支持子类化”。这是否意味着他们会拒绝任何继承此类陈述类的尝试?

注意:我不希望使用任何人工时间延迟作为解决方案。

1 个答案:

答案 0 :(得分:1)

  

然后ABPeoplePickerNavigationController解散自己

有你的问题。它只是因为没有解雇它而解雇自己。明确地,自己解雇它!在dismissViewControllerAnimated:completion:实施中点击didSelectPerson:

现在你有一个完成处理程序,因此你可以在解雇完成后运行代码。