不能在iPhone中解雇A Person ViewController

时间:2012-04-18 11:50:55

标签: iphone abpersonviewcontroller abrecordref

如何解雇ABPersonViewController?这是我的代码

 #pragma mark - Edit Record Method

-(void)btnEditContactTapped:(id)sender {

    // Fetch the address book 
    ABAddressBookRef addressBook = ABAddressBookCreate();

    ABRecordID recID = ABRecordGetRecordID(record);

    ABRecordRef record1 = ABAddressBookGetPersonWithRecordID(addressBook,recID);

    ABPersonViewController *personViewController = [[ABPersonViewController alloc]init];
    // set delegate
    personViewController.personViewDelegate = self;

    // Allow editing info
    personViewController.allowsEditing = YES;

    // Display contact info of selected person
    personViewController.displayedPerson = record1;

    // Person view controllers must be used with a navigation controller in order to function properly.
    UINavigationController *nc = [[UINavigationController alloc]
                                  initWithRootViewController:personViewController];
    [self presentModalViewController:nc animated:YES];
    [personViewController release];

}

#pragma mark - ABPersonViewControllerDelegate Method

- (BOOL)personViewController:(ABPersonViewController *)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifierForValue {

    [self dismissModalViewControllerAnimated:YES];
    return NO;
}

记录在我的ivar中,在.h文件中声明为ABRecordRef记录。 ABPersonViewControllerDelegate方法永远不会被调用?出了什么问题?任何形式的帮助表示赞赏。感谢

1 个答案:

答案 0 :(得分:0)

您是否在项目的.h中实现了这些协议..?

< ABPeoplePickerNavigationControllerDelegate,
                                                                 ABPersonViewControllerDelegate,
                                                                 ABNewPersonViewControllerDelegate,
                                                                 ABUnknownPersonViewControllerDelegate>