检查当前viewController类是否为IOS 7中的ABPersonViewController时出现问题

时间:2013-10-04 12:42:55

标签: iphone ios ipad ios7 abpersonviewcontroller

我正在加载ABPeoplePickerNavigationController。点击peoplepicker中的联系人,我正在检查条件

if([navigationController isKindOfClass:[ABPeoplePickerNavigationController class]]
   && [viewController isKindOfClass:[ABPersonViewController class]]){

  //Statements

}

但是在IOS 7中我注意到了第二个条件,即

[viewController isKindOfClass:[ABPersonViewController class]

始终返回NO。我知道加载的viewcontroller是ABPersonViewController。 这一点在IOS 6之前正常工作。可能是什么问题?无论如何,我可以解决这个问题。

编辑:

UINavigationController代表

中检查条件
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated

记录时,viewController类显示为ABContactViewController

1 个答案:

答案 0 :(得分:1)

检查课程时,您会发现iOS7会返回不同的类型。

查看您需要检查的逻辑。您不应该使用内省对人员选择器操作做出适当的反应。只需从ABPeoplePickerNavigationControllerDelegate实现标准委托方法即可。特别是,你必须实现:

- (BOOL)peoplePickerNavigationController:
    (ABPeoplePickerNavigationController *)peoplePicker 
     shouldContinueAfterSelectingPerson:(ABRecordRef)person;