2011-09-27 64 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]; 
相關問題