I implemented a ABPeoplePickerNavigationController and ABPersonViewController. I did however, add the peoplepicker to a tabbarcontroller, it is no longer presented modally. The tabbarController keeps a reference to the controller. I added a big red "delete"-button in the ABPersonViewController to further mimic the default contacts app behaviour. I used [personViewController setValue:[NSNumber numberWithBool:YES] forKey:@"allowsDeletion"];
to do so.
Clicking the button will actually delete specified person from the addressbook but when popping back to the PeoplePicker controller's view, the deleted contact is still present. Only after reloading my app the addressbook references have been updated and the contact is no longer present. Clicking on said contact without restarting will either crash the app or show an empty contact.
The simplest solution I can come up with is to make the ABPeoplePickerNavigationController reload its contact items. But how would I go about doing this? I've tried countless 'solutions' (eg setNeedsDisplay) but it seems I'm missing something. If there would be any other solutions I'd be very glad to hear about them.
I am testing in the Simulator, if that might be of any difference.