2011-09-27 3 views
0

Я пытаюсь включить редактирование контакта в универсальном приложении с ABPersonViewController, отображаемым в UIPopoverController. Человек отображается, но кнопка «Редактировать» отсутствует. На самом деле, я бы предпочел, чтобы пользователь увидел детали уже в редактируемой форме, но было бы хорошо, если бы они могли сделать редактирование после нажатия кнопки «Редактировать». На iPhone он отлично работает. Может ли кто-нибудь помочь, пожалуйста.Как я могу отобразить ABPersonViewController с кнопкой «Редактировать» в UIPopOverController

ABPersonViewController *view = [[ABPersonViewController alloc] init]; 
view.personViewDelegate = self; 
ABAddressBookRef addressBook = ABAddressBookCreate(); 
ABRecordRef contact = ABAddressBookGetPersonWithRecordID(addressBook,(ABRecordID)recId); 
view.displayedPerson = contact; 
view.displayedProperties = [NSArray arrayWithObjects:[NSNumber numberWithInt:kABPersonFirstNameProperty], [NSNumber numberWithInt:kABPersonLastNameProperty], [NSNumber numberWithInt:kABPersonAddressProperty], nil]; 
view.allowsEditing = YES; 
view.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]   initWithTitle:NSLocalizedString(@"Back",nil)  style:UIBarButtonItemStylePlain target:self action:@selector(ReturnFromPersonView)] ; 

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
    { 
     UIPopoverController *addressPopup; 
     addressPopup = [[UIPopoverController alloc] initWithContentViewController:view]; 
     addressPopup.delegate = self; 

     self.popoverController = addressPopup; 
     [addressPopup release]; 
     [self.popoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 
    } 
    else 
    { 
     [self.navigationController pushViewController:view animated:YES]; 
    } 
    if (addressBook) CFRelease(addressBook); 

    [view release]; 

ответ

0

Необходимо, чтобы ваш оператор ABPersonViewController * явно указывал на UINavigationController.

ABPersonViewController *view = [[ABPersonViewController alloc] init]; 
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:view]; 
    UIPopoverController *personViewPopover = [[UIPopoverController alloc] initWithContentViewController:navController]; 

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

  • Нет связанных вопросов^_^