2011-09-27 13 views
0

普遍的なアプリケーションでABPersonViewControllerUIPopoverControllerに表示されている連絡先の編集を有効にしようとしています。人は表示されますが、編集ボタンはありません。実際には、ユーザーが編集可能なフォームで詳細を見た場合には好きですが、編集ボタンを押しても編集できるのであれば問題ありません。 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]; 
関連する問題