ios - 如何在 Swift 中使用 ABPeoplePickerNavigationController 选择多个联系人

标签 ios objective-c iphone arrays swift

我已将 ABPeoplePickerNavigationController 添加到我的第一个 View Controller 中。我希望从地址簿中选择多个联系人,然后检索他们的号码,但我的代码只选择一个人并获取其号码,然后选择器消失。

//instantiate the person picker
    let personPicker: ABPeoplePickerNavigationController

    required init(coder aDecoder: NSCoder) {
        personPicker = ABPeoplePickerNavigationController()
        super.init(coder: aDecoder)
        personPicker.peoplePickerDelegate = self
    }


    @IBAction func getSinglePerson(sender: AnyObject) {
        self.presentViewController(personPicker, animated: true, completion: nil)
    }


    //later, you have handle cancel button properly.
    func peoplePickerNavigationControllerDidCancel(peoplePicker: ABPeoplePickerNavigationController!) {
    }

    func peoplePickerNavigationController(peoplePicker: ABPeoplePickerNavigationController!, didSelectPerson person: ABRecord!) {
        if peoplePicker != personPicker{
            return
        }

        let unmanagedPhones = ABRecordCopyValue(person, kABPersonPhoneProperty)
        let phones: ABMultiValueRef = Unmanaged.fromOpaque(unmanagedPhones.toOpaque()).takeUnretainedValue() as NSObject as ABMultiValueRef

        let countOfPhones = ABMultiValueGetCount(phones)

        for index in 0..<countOfPhones{
            let unmanagedPhone = ABMultiValueCopyValueAtIndex(phones, index)
            let phone: String = Unmanaged.fromOpaque(unmanagedPhone.toOpaque()).takeUnretainedValue() as NSObject as String

            println(phone)
        }

}

感谢任何帮助。谢谢!

最佳答案

内置 Controller 不支持。试试这个:https://github.com/tristanhimmelman/THContactPicker

关于ios - 如何在 Swift 中使用 ABPeoplePickerNavigationController 选择多个联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29261736/

相关文章:

iphone - 备份/恢复 Gmail?

iphone - xcode iOS 获取所有本地化的列表

ios - 在ios上写:文件不出现

iphone - NSTask waitUntilExit 在越狱 iOS 上挂起应用程序

ios - 从容器 View 中删除后退栏按钮标题

ios - 如何使用类似选择器的自定义编辑模式创建 UITableView

ios - 从多任务恢复时如何重新启动应用程序

ios - 隐藏 Nib 内容直到任务完成

ios - 数据更改时如何对 UIControl 调整大小使用react

iphone - NSManagedObject initWithEntity : insertIntoManagedObjectContext: EXC_BAD_ACCESS