ナビゲーションコントローラのスタックに3つのViewControllerがあります。 3番目のViewControllerには、連絡先をアドレス帳に追加するボタンがあります。権限を要求するとナビゲーションスタックが戻されます
承認ステータスを初めて確認するときにこのアプリが使用されずにこのボタンが押された場合、not determined
の場合はABAddressBookRequestAccessWithCompletion
で許可を求めています。
これが答えられ、アプリケーションがナビゲーションスタックの最後のVCに戻ると仮定すると、すべてのVCを戻して、ナビゲーションスタックの最初のVCに戻ってくる。
この意図的な動作ですか?ただ、これを完了するために、
else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
// ask for access to address book.
ABAddressBookRequestAccessWithCompletion(ABAddressBookCreateWithOptions(NULL, nil), ^(bool granted, CFErrorRef error) {
if (!granted){
NSLog(@"Addressbook access was denied");
return;
}
NSLog(@"Addressbook access was authorized");
//[self addContactToAddressbook];
});
}
ダイアログアプリに何を行うべきではありません。あなたは 'didEnterForeground'イベント(アプリケーションデリゲートメソッドまたは通知)に応答して何かをしていますか? – Paulw11
いいえ、私が知っていることは何もありません。 'didEnterForeground'はありません。私は許可を求めているコードを表示するために質問を編集しました。答えとは関係なく、常に私のナビゲーションスタックの最初の画面に戻ってきます。 – Jens
このコードはどのような機能ですか?要求は非同期で完了します。これに続くコードは何ですか?アクセスリクエストを完全に削除すると、アプリは何をしますか? – Paulw11