Я использую ABNewPersonViewController
. Я коплю на кнопку Готово (rightBarButtonItem
из ABNewPersonViewController
) к другой кнопке, так что метод делегатаМетод делегата 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];
Иногда метод вызывается, а иногда и не работает. Если я просто отредактировал поле адреса электронной почты или номер телефона контакта и попытаюсь его сохранить, метод будет вызван. Но если я попытаюсь изменить поля адреса, а затем сохранить, метод не будет вызван. Что может быть причиной этого.
Редактировать: обнаружено, что метод делегата не запускается при загрузке нового представления. И это происходит (новый просмотр загружен), только когда такие поля, как Country, Ringtone редактируются. То, когда метод делегата не запускается. Во всех других случаях метод делегата запускается. Теперь любые предложения?
Вы говорите, что вы вызываете действие своей кнопки с другого вида. Вы уверены, что defaultRightBarButtonItem не будет выпущен при попытке вызвать его? – MrTJ
Иногда метод выполняется, иногда это не так. Будут ли проблемы с выпуском? –
Это может быть легко ситуация параллелизма, особенно если ваш объект автореализован. Поместите точку останова в эту строку и попытайтесь поймать случай, когда он не будет вызывать селектор. Или вы можете записать значение указателя defaultRightBarButtonItem перед вызовом этой строки. – MrTJ