Appleは、包括的で小さな例 "QuickContacts"(developer.apple.com/library/IOs/samplecode/QuickContacts/Introduction/Intro.html)を使用して、Address Book UI Frameworkの基本的な使用法を概説しています。 - ダウンロード可能なソースコードは、あなたのアドレス帳に「Appleseed」という名前の人物を追加するか、(QuickContactsViewController.mの)246行目の人名をあなたのアドレス帳にすでに存在するものに変更してください。iOS7 - ABPersonViewController、編集モード
質問:我々はABPersonViewController "picker"
が編集モードに既にあるような方法で機能-(void)showPersonViewController
機能を変更するにはどうすればよい navigationControllerの上にプッシュされた後に(それが開いたときに、(とeditingButton「完了」表示)スタック)。
"7"より前のiOSバージョンでは、挿入するだけのストレートな問題でした。 picker.editing = YES;
をクリックしてから、nav-stackにピッカーを押し込んで、編集モードで表示されるようにします(後のコードを参照)。
iOS7ではこれはもう動作しません。
これはiOS7のバグですか?その場合、簡単な回避策がありますか(たとえばABPersonViewController
クラスをリバースエンジニアリングするのではなく)ですか? - あるいは、最近は別々にコード化する必要がありますか?
コメントをお待ちしています。あなたが代わりにABPersonViewControllerのABNewPersonViewControllerを使用することができます
-(void)showPersonViewController
{
// Search for the person named "Appleseed" in the address book
NSArray *people = (NSArray *)CFBridgingRelease(ABAddressBookCopyPeopleWithName(self.addressBook, CFSTR("Appleseed")));
// Display "Appleseed" information if found in the address book
if ((people != nil) && [people count])
{
ABRecordRef person = (__bridge ABRecordRef)[people objectAtIndex:0];
ABPersonViewController *picker = [[ABPersonViewController alloc] init];
picker.personViewDelegate = self;
picker.displayedPerson = person;
// Allow users to edit the person’s information
picker.allowsEditing = YES;
picker.editing = YES; // in iOS6 this works, in iOS7 it does not
[self.navigationController pushViewController:picker animated:YES];
}
...
...
}
これはiOSの7、より高い優先順位の修正が割り当てられますことを報告し、より人々のバグです。 http://bugreport.apple.com –
@ Tommie C. - そうです、Appleはバグだと確認しました。 - ご意見ありがとうございます。 – user2831473
これはまだ修正されていないようですね?? – SAHM