0

ABPersonViewControllerに表示されたユニバーサルアプリで連絡先の編集を有効にしようとしていますUIPopoverController。人物は表示されますが、[編集]ボタンはありません。実際には、ユーザーがすでに編集可能なフォームで詳細を表示している場合はそれをお勧めしますが、[編集]ボタンを押してから編集できれば問題ありません。iPhoneでは正常に動作します。誰か助けてくれませんか。

   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]; 
4

1 に答える 1

0

ABPersonViewController*viewを明示的にUINavigationControllerに追加する必要があります。

    ABPersonViewController *view = [[ABPersonViewController alloc] init];
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:view];
    UIPopoverController *personViewPopover = [[UIPopoverController alloc] initWithContentViewController:navController];
于 2012-02-03T02:43:03.020 に答える