【问题标题】:how to select multiple contacts with ABPeoplePickerNavigationController in Swift如何在 Swift 中使用 ABPeoplePickerNavigationController 选择多个联系人
【发布时间】:2015-03-25 16:51:54
【问题描述】:

我已将 ABPeoplePickerNavigationController 添加到我的第一个视图控制器中。我希望从通讯录中选择多个联系人,然后检索他们的号码,但我的代码只选择一个人并获取其号码,然后选择器消失。

//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)
        }

}

感谢任何帮助。谢谢!

【问题讨论】:

    标签: ios objective-c iphone arrays swift


    【解决方案1】:

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

    【讨论】:

    • 有 Swift 版本吗?
    猜你喜欢
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    相关资源
    最近更新 更多