0

私は目的のCにかなり慣れています。私はXCode 4.2を使用しており、アプリケーションの一部ではアドレス帳にデータを保存する必要があります。私はaddressBookフレームワークと私の中addressBookUI枠組み を追加はABNewPersonViewControllerを使用してアドレス帳に表示することができません

:私は、私は、次のコードを使用しようとしています

をクリックして、それがアドレス帳に表示する必要があり、ちょうどボタンに保存していません。 Hファイル私は、私は行くバットをクリックしたときに私が

-(IBAction)go{ 
    ABRecordRef newPerson= ABPersonCreate(); 
    CFErrorRef error = NULL; 
    ABRecordSetValue(newPerson, kABPersonFirstNameProperty, CFSTR("john"), &error); 
    ABRecordSetValue(newPerson, kABPersonLastNameProperty, CFSTR("Smith"), &error); 
    NSAssert(!error, @"something bad happend here."); 


    ABNewPersonViewController* newPersonViewController = [[ABNewPersonViewController alloc] initWithNibName:nil bundle:nil]; 
    [newPersonViewController setDisplayedPerson:newPerson]; 
    [newPersonViewController setNewPersonViewDelegate:self]; 

    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:newPersonViewController]; 

    [self presentModalViewController:navController animated:YES]; 

    CFRelease(newPerson); 

} 

-(void)newPersonViewController:(ABNewPersonViewController *)newPersonView didCompleteWithNewPerson:(ABRecordRef)person{ 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

を書いた私の.mファイルに

#import <UIKit/UIKit.h> 
#import <AddressBook/AddressBook.h> 
#import <AddressBookUI/AddressBookUI.h> 


    @interface HelloWorld20ViewController : UIViewController<ABNewPersonViewControllerDelegate,ABPersonViewControllerDelegate>{ 

} 
-(IBAction)go; 

@end 

を書きましたここで私は

enter image description here

それがこれをやっている理由はそこにあるが何を取得していますされています。私の上に黒い画面を取得しますか?

ありがとう!

編集

現在のコード:

-(IBAction)go{ 
    ABRecordRef newPerson= ABPersonCreate(); 
    CFErrorRef error = NULL; 
    ABRecordSetValue(newPerson, kABPersonFirstNameProperty, CFSTR("john"), &error); 
    ABRecordSetValue(newPerson, kABPersonLastNameProperty, CFSTR("Smith"), &error); 
    NSAssert(!error, @"something bad happend here."); 


    ABNewPersonViewController* newPersonViewController = [[ABNewPersonViewController alloc] initWithNibName:nil bundle:nil]; 
    [newPersonViewController setDisplayedPerson:newPerson]; 
    [newPersonViewController setNewPersonViewDelegate:self]; 


    [self presentModalViewController:newPersonViewController animated:YES]; 

    CFRelease(newPerson); 

} 

とまだ同じ問題

+0

なぜ新しいナビゲーションコントローラを作成していますか?ちょうどあなたのアドレス帳のコントローラを渡すと、正常に動作します。 –

+0

IBAction関数からナビゲーションコントローラを削除しましたが、まだ黒い画面が表示されていますが、今回はナビゲーションバーが表示されません...まだ動作していません – user1051935

答えて

1

さてさて、あなたの問題は、ここでこの行です:

ABNewPersonViewController* newPersonViewController = [[ABNewPersonViewController alloc] initWithNibName:nil bundle:nil]; 

あなたがその行を交換した場合これは:

ABNewPersonViewController* newPersonViewController = [[ABNewPersonViewController alloc] init]; 

コードは正常に動作します。

+0

動作します!どうもありがとう!!!! – user1051935

関連する問題