4

我有一个包含ABPersonViewController子视图控制器的类。在iOS7之前,我可以setDisplayedPerson:多次传递消息,更新或替换显示的信息。然而,在 iOS7 中,一旦子视图控制器viewDidLoad触发ABPersonViewController,任何后续调用setDisplayedPerson:似乎都会被忽略。

我可以将子视图控制器替换为另一个,甚至为它们之间的过渡设置动画,但这非常不雅。

有一个开放的雷达:rdar://14682982

有人见过这个吗?

编辑: iOS8 beta 1 解决了这个问题。

4

3 回答 3

2

作为临时解决方法,如果ABPersonViewController已显示,您可以ABContactViewController通过self.navigationController.topViewController.childViewControllers.firstObject并调用reloadData:以重新加载显示的人员信息。

于 2013-11-11T12:49:58.570 回答
0

我一直在处理同样的问题。我目前的解决方案是ABPersonViewController使用延迟实例化的 as 属性(我在几个地方需要它),并在使用它之前将其设置为 nil。这样,我总是有一个新的可以使用。

于 2013-11-04T20:46:53.697 回答
0

该问题已在 iOS8 测试版中得到解决。

于 2014-06-16T04:54:51.820 回答