In an earlier post I covered how to remove the cancel button that appears in an ABPeoplePickerNavigationController. Today I ran up against another problem with the AddressBook view controllers.

The problem I faced this time appeared in the ABPersonViewController, when I called,

ABPersonViewController *abpvc = [[ABPersonViewController alloc]init;
...
[abpvc setAllowsDeletion];

I received a warning and could not figure out any other way to make the deletion button appear when editing a contact. Finally I tried,

   @try
    {
 
        // Display the "Delete" and "Cancel" buttons
        [abpvc setValue:[NSNumber numberWithBool:YES] forKey:@"allowsDeletion"];
    }
    @catch (NSException * e)
    {
        NSLog(@"Failed to provide deletion");
    }

Which worked but unfortunately it would see this method has been made private now. At the moment there does not seem to be another way to provide deletion in the standard AddressBook components so I hope this one gets under the radar.