Я использую ABNewPersonViewController
.Я сохраняю кнопку Готово (rightBarButtonItem
из ABNewPersonViewController
) на другую кнопку, чтобы метод делегата
- (void)newPersonViewController:(ABNewPersonViewController *)newPersonViewController didCompleteWithNewPerson:(ABRecordRef)person
не вызывался до тех пор, пока не будет нажата кнопка Готово.Мой viewDidLoad
метод имеет вид
- (void)viewDidLoad {
[super viewDidLoad];
self.defaultRightBarButtonItem = self.navigationItem.rightBarButtonItem;
UIBarButtonItem *saveBtn = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemSave
target:self
action:@selector(actionSave:)];
self.navigationItem.rightBarButtonItem = saveBtn;
[saveBtn release];
}
При нажатии кнопки в другом представлении я запускаю готовое действие кнопки
[self.defaultRightBarButtonItem.target
performSelector:self.defaultRightBarButtonItem.action
withObject:self.defaultRightBarButtonItem.target];
Иногда метод вызывается, а иногда не работает.Если я просто отредактирую поле адреса электронной почты или номер телефона контакта и попытаюсь сохранить его, метод будет вызван.Но если я попытаюсь отредактировать адресные поля и затем сохранить, метод не будет вызван.Что может быть причиной этого.
Редактировать: Обнаружено, что метод делегата не запускается при загрузке нового представления.И это происходит (загружается новый вид) только тогда, когда такие поля, как Страна, Рингтон, редактируются.Это когда метод делегата не запущен.Во всех других случаях метод делегата срабатывает.Теперь есть предложения?