Контекст:
Я работаю над приложением, которое поддерживает список контактов вместе с их идентификаторами записей для справки.
Когда пользователю необходимо изменить номер, связанный с конкретным контактом в приложении, я пытаюсь отобразить ABPersonViewController, чтобы пользователь мог выбрать новый номер из контакта в AB.
Проблема:
Проблема в том, что открываемый ABPersonViewController запускается полностью с верхней части экрана, как будто он не знает, что сверху находится панель навигации.
В результате некоторая верхняя часть экрана ABPersonViewController (верхняя часть изображения человека и верхняя часть имени) находится под панелью навигации.
В идеале я хочу, чтобы это выглядело так, но не в режиме редактирования: http://developer.apple.com/library/ios/documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/Art/person_view.jpg
Также я хотел добавить кнопку «Отмена» в верхнюю правую часть панели навигации. Попытка добавить это как кнопка бара также не работает.
Код:
вот как я добавляю ABPersonViewController к navigationController:
ABPersonViewController *personViewController = [[ABPersonViewController alloc] init];
personViewController.personViewDelegate = self;
personViewController.displayedPerson = person;
[self.m_circleNavController pushViewController:personViewController animated:YES];
[personViewController release];
self
здесь UIVIewController
.
m_circleNavController
- это UINavigationController, к которому принадлежит UIVIewController.
Я попробовал эти 2 способа показать вид человека, но оба ведут себя одинаково.
[self.m_circleNavController pushViewController:personViewController animated:YES];
[self.navigationController pushViewController:personViewController animated:YES];
Я не слишком уверен, что я делаю неправильно или как это лучше всего сделать.
Я пробовал много разных способов отобразить это напрасно.