2010-06-29 2 views
1

ABPersonViewController по умолчанию показывает кнопку «Отмена» в позиции правой панели кнопок. Как можно было бы скрывать/очищать этот предмет? Образец обязательного кода:ABPersonViewController и скрытие кнопки Cancel

ABPersonViewController *picker = [[[ABPersonViewController alloc] init] autorelease]; 
picker.personViewDelegate = self; 
picker.displayedPerson = aPerson; 
picker.allowsEditing = NO; 

Спасибо.

+0

РЕШИТЬ! Подкласс ABPersonViewController, переопределить - (void) viewDidLoad, вызвать супер и THEN установить rightBarButtonItem на nil. Та да! @interface PersonViewController: ABPersonViewController @end @implementation PersonViewController - (недействительными) viewDidLoad { \t [супер viewDidLoad]; \t self.navigationItem.rightBarButtonItem = nil; } @end – gnasher

ответ

4

РЕШЕННЫЙ! Подкласс ABPersonViewController, переопределить -(void) viewDidLoad, вызвать супер и THEN установить rightBarButtonItem на nil. Та да!

@interface PersonViewController : ABPersonViewController 
@end 

@implementation PersonViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.navigationItem.rightBarButtonItem = nil; 
} 

@end 
+0

Обязательно отметьте свой собственный ответ, как принято, чтобы другие могли обратиться к вашему решению :) – BoltClock

1

Намного проще:

ABPersonViewController *picker = [[[ABPersonViewController alloc] init] autorelease]; 
picker.personViewDelegate = self; 
picker.displayedPerson = aPerson; 
picker.allowsEditing = NO; 
[self.navigationController pushViewController:picker animated:YES]; 
picker.navigationItem.rightBarButtonItem = nil; // remove "Cancel" button 
[picker release]; 

(Просто добавил rightBarButtonItem = ноль после pushViewController.)

+0

Кажется, это регресс в iOS 4. Мой код работает до iOS4, где я мог бы добавить rightBarButtonItem перед этим, теперь я должен добавить его ПОСЛЕ того, как я вызываю presentModalViewController в UINavigationController, который содержит мой ABPersonViewController. – Shazron

Смежные вопросы