2013/08/17

[iOS][Objective-C]アドレス帳を開く

どうやらアプリ内で、アドレス帳を開くことができるようだ。

その方法を書きたいと思います。

まずは、下の二つのライブラリーが必要です。

AddressBook.framework
AddressBookUI.framework
表示したいViewController.hに下のコードを記述。
#import <AddressBookUI/AddressBookUI.h>
表示したいViewController.mに下のコードを記述。
ABPeoplePickerNavigationController *aBPeoplepicker;

aBPeoplepicker = [[ABPeoplePickerNavigationController alloc] init];
aBPeoplepicker.peoplePickerDelegate = self;
[self presentModalViewController:aBPeoplepicker animated:YES];
ただし、これだけだとクラッシュしてしまう、理由は、delegateを設定していないから。

というわけで、ABPeoplePickerNavigationControllerDelegateを設定して、以下のメソッドを追記する。
//ABPeoplePickerNavigationControllerDelegate
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person{
    return YES;
}

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{
    return NO;
}

- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker{
    [self dismissModalViewControllerAnimated:YES];
}
こうすればクラッシュすることなく、下のようにアドレス帳にアクセスしてもいいかどうか問うアラートが表示されます。
 photo address_ios_zps95f2d955.jpg
友達招待機能とか実装したい場合に、便利かなと。

0 コメント:

コメントを投稿