2013-07-17 5 views
1

Я пишу приложение, основанное на UIViewController. В нем нет панели навигации. Мое приложение работает с AddressBook. На данный момент я использую две вещи.ABPersonViewController не имеет навигацииBar

Первый (выбрать народ):

{ 
    ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init]; 
    picker.peoplePickerDelegate = self; 
    [self presentModalViewController:picker animated:YES]; 
} 

и второй (выберите телефон):

{ 
    ABPersonViewController *picker = [[[ABPersonViewController alloc] init] autorelease]; 
    picker.personViewDelegate = self; 
    picker.displayedPerson = person; 
    picker.displayedProperties = [NSArray arrayWithObjects: [NSNumber numberWithInt:kABPersonPhoneProperty], nil]; 
    [self presentModalViewController:picker animated:YES]; 
} 

Они называются в различных функциях.

В первом случае при отображении выбора, он имеет навигационную панель с некоторыми кнопками: Cancel и т.д.

Во втором случае другой сборщик не имеет навигационную панель. Поэтому, если я выбираю телефон, тогда он работает, но если я хочу вернуться без выбора - у меня нет кнопки «Назад» или «Отмена».

Как добавить панель навигации во втором случае?

Я попытался добавить еще один навигационный контроллер и ViewController, как описано ниже

How to correctly use ABPersonViewController with ABPeoplePickerNavigationController to view Contact information?

это отображения, в котором navigatiob бар, но мои сбои приложения после этого.

и

+0

Вы используете раскадровки? –

ответ

2

ABPeoplePickerNavigationController, как следует из названия, представляет собой навигационный контроллер, поэтому он имеет навигационную панель. ABPersonViewController - это просто контроллер вида, поэтому он не имеет собственной панели навигации. Вы можете поместить экземпляр ABPersonViewController в контроллер навигации самостоятельно и представить это, тогда у него будет панель навигации, и вы можете добавить любые нужные вам кнопки.

+0

Мне кажется, что это ключ! –

+1

Это работает при необходимости. Спасибо! . Picker.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemЧитать цель: self action: @selector (ClosePeoplePicker)]; UINavigationController * ctrl = [[UINavigationController alloc] initWithRootViewController: picker]; [self presentModalViewController: ctrl animated: YES]; –

+0

можете ли вы опубликовать код, который сработал для вас? – achi

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