gpt4 book ai didi

ios - Swift:防止 ABPeoplePickerNavigationController 关闭

转载 作者:搜寻专家 更新时间:2023-10-30 21:58:28 27 4
gpt4 key购买 nike

我想找出一种方法,如果用户按下 ABPeoplePickerNavigationController 中的“取消”按钮(我认为不能删除), View Controller 要么不会关闭,或将自动重新打开。

例如,给定以下内容:

var picker = ABPeoplePickerNavigationController()
picker.peoplePickerDelegate = self
self.presentViewController(picker, animated: true, completion: nil)

我希望能够做类似的事情:

if (self.presentedViewController != picker && !userContinuedPastPicker) {
//where userContinuedPastPicker is a boolean set to false
//in a delegate method called when the user clicks on an a contact
//(meaning the user didn't press the cancel button but instead clicked on a contact)

//create and present a UIAlertAction informing the user they must select a contact

//present picker again
self.presentViewController(picker, animated: true, completion: nil)
}

这行不通;但是,因为 if 语句不会“等待”直到用户按下取消按钮或按下联系人。

最佳答案

我不确定是否有办法删除取消按钮或阻止它工作,但您可以响应 func peoplePickerNavigationControllerDidCancel(_ peoplePicker: ABPeoplePickerNavigationController!) 委托(delegate)来处理按下取消按钮的情况。

我建议不要立即重新打开选择器,而是打开一个警告告诉用户他们需要选择某人,然后从那里重新打开它。如果他们取消并立即重新打开,它可能会感觉损坏。

Reference

编辑:
呈现警报或选择器可能需要延迟足够长的时间才能关闭前一个选择器。 dispatch_after

关于ios - Swift:防止 ABPeoplePickerNavigationController 关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32149823/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com