我在导航控制器的堆栈中有 3 个 ViewController。在第三个 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];
    });
} 
(我暂时评论了电话addContactToAddressbook以确保它不会干扰。)