我试图设置我的应用程序,以便当从ABPeoplePickerNavigationController打开一个特定的联系人时,在ABPersonViewController中,右上角有一个编辑按钮。
我知道以前有人问过类似的问题,但我看过每个问题。也许部分原因是因为它们是针对较早版本的iOS的,或者是因为大多数是在Objective中,或者是由于我自己的无知,我一直无法解决这个问题。
这是我的密码:
func peoplePickerNavigationController(peoplePicker: ABPeoplePickerNavigationController!, shouldContinueAfterSelectingPerson person: ABRecord!) -> Bool {
/*let controller = ABPersonViewController()
controller.displayedPerson = person
controller.allowsEditing = true
controller.editing = true
controller.personViewDelegate = self
peoplePicker.pushViewController(controller, animated: true)*/
let picker = ABNewPersonViewController()
picker.newPersonViewDelegate = self
picker.displayedPerson = person
picker.navigationItem.title = "edit contact"
self.navigationController?.pushViewController(picker, animated: true)
return false
}注释代码是我在看到这个问题之前所拥有的:iOS7 - ABPersonViewController, editing mode
同样,我要做的就是在顶部添加编辑按钮,以便用户可以选择编辑联系人,但是ABPersonViewController应该在编辑模式下打开而不是。
任何帮助都是感激的,如果这是乏味的,我很抱歉。
发布于 2015-08-04 23:09:07
这应该是可行的:
// iOS 8 and later
func peoplePickerNavigationController(peoplePicker: ABPeoplePickerNavigationController!, didSelectPerson person: ABRecord!) {
self.pushViewControllerWithPerson(person)
}
// Prior iOS 8
func peoplePickerNavigationController(peoplePicker: ABPeoplePickerNavigationController!, shouldContinueAfterSelectingPerson person: ABRecord!) -> Bool {
self.pushViewControllerWithPerson(person)
return false
}
func pushViewControllerWithPerson(person: ABRecord) {
let controller = ABPersonViewController()
controller.displayedPerson = person
controller.allowsEditing = true
controller.personViewDelegate = self
self.navigationController?.pushViewController(controller, animated: true)
}注:
peoplePickerNavigationController(peoplePicker:shouldContinueAfterSelectingPerson:)在iOS 8中是不推荐的,因此这个方法不会被调用,因为这个iOS版本。
应该使用peoplePickerNavigationController(peoplePicker:didSelectPerson:)。
https://stackoverflow.com/questions/31775748
复制相似问题