1

ABPersonViewControllerナビゲーション スタックにプッシュするのではなく、モーダルとして表示したいと考えています。私はこれを機能させましたが、完了ボタンを表示し続けるには、NSTimer を使用して 0.25 秒ごとにボタンを追加する必要がありました。これはかなり不十分なハックなので、誰かがより良いアイデアを持っているかどうか疑問に思っています:)

ABPersonViewController完了ボタンを追加し、ビューがロードされたときにタイマーを開始し、ビューの割り当てが解除されるとそれを無効にするサブクラスを作成しました。

モーダルを表示するコードは次のようになります。

- (IBAction)showContactModal:(id)sender{
    CNABPersonViewController *personViewController = [[CNABPersonViewController alloc] init];
    personViewController.displayedPerson = self.contact.record;
    personViewController.addressBook = [[CNAddressBookManager sharedManager] addressBook];
    personViewController.viewDelegate = self;
    personViewController.shouldShowLinkedPeople = YES;
    UINavigationController *navigationController =
    [[UINavigationController alloc] initWithRootViewController:personViewController];
    navigationController.modalPresentationStyle = UIModalPresentationFormSheet;     
    [self presentViewController:navigationController animated:YES completion:nil];
}
4

1 に答える 1

0

私はこのようにそれを行うことに成功しました。次の行を挿入して、ナビゲーション バーにボタンを追加します。

    personViewController.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"Test" style:UIBarButtonItemStylePlain target:self action:@selector(_yourAddressBookAction)];

これで問題が解決しない場合は、問題が発生したコードを提示してください。

于 2014-04-02T22:21:44.530 に答える