Cannot dismiss ABPersonViewController in iPhone

685 Views Asked by At

How can I dismiss the ABPersonViewController? Here is my code

 #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;
}

record in my ivar declared as ABRecordRef record in .h file. ABPersonViewControllerDelegate method never gets called? What's going wrong? Any kind of help is appreciated. Thanks

1

There are 1 best solutions below

3
On

Have you implemented thesse protocols in .h of your project.. ?

< ABPeoplePickerNavigationControllerDelegate,
                                                                 ABPersonViewControllerDelegate,
                                                                 ABNewPersonViewControllerDelegate,
                                                                 ABUnknownPersonViewControllerDelegate>