2011-09-27 67 views
0

我试图在UIPopoverController中显示ABPersonViewController来启用通用应用程序中编辑联系人的功能。该人确实显示,但没有编辑按钮。实际上,如果用户在“可编辑”表单中看到了详细信息,我更喜欢它,但如果他们可以在点击“编辑”按钮之后进行编辑,那也可以。在iPhone上,它工作正常。任何人都可以帮忙,请。如何在UIPopOverController中显示带有编辑按钮的ABPersonViewController

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]; 
相关问题