0

My app brings up a ABPersonViewController and gives the user the option to edit, or to select the contact. I can easily allow editing (pvc.allowsEditing = YES) but I can't figure out how to add the Select button. I would prefer to add it to the ABPersonViewController as a custom button like the Text Message, etc. default buttons.

sehugg
  • 3,615
  • 5
  • 43
  • 60
  • ... but I'd accept just mucking with the toolbar to add the Select button. I can do that, can't I? :) – sehugg Mar 04 '10 at 02:38

2 Answers2

0

No, you can't. Any modifications on the default appearance of ABPersonContact will be rejected by Apple. An alternative way is to custom your own ViewController and load data from Contact.

Paradise
  • 558
  • 6
  • 17
0

I ended up subclassing ABPersonViewController and sliding in a UIToolbar after it appears. An example is below:

- (void)showToolbar
{
// build the toolbar items
UIBarButtonItem *spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
NSString* buttonTitle = NSLocalizedString(@"Select This Contact",@"button to select a contact");
UIBarButtonItem *chooseItem = [[UIBarButtonItem alloc] initWithTitle:buttonTitle
                                                               style:UIBarButtonItemStyleDone 
                                                              target:self 
                                                              action:@selector(chooseContact)];

// slide in the toolbar
self.navigationController.toolbar.barStyle = UIBarStyleDefault;
[self.navigationController setToolbarHidden:NO animated:YES];
self.navigationController.toolbar.items = [NSArray arrayWithObjects:spaceItem, chooseItem, nil];
[spaceItem release];
[chooseItem release];
}


- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.navigationController setToolbarHidden:YES animated:animated];
}

- (void)viewDidAppear:(BOOL)animated 
{
[self showToolbar];
[super viewDidAppear:animated];
}
sehugg
  • 3,615
  • 5
  • 43
  • 60