【发布时间】:2016-01-03 13:33:23
【问题描述】:
[似乎已在 iOS 10 中修复!] 那么以下内容仅适用于 iOS 9...
我一直在尝试使用 Apple 的新联系人框架,并且在 CNContactViewController 的三种形式之一中发现了一个巨大的错误。它破坏了周围的界面,使您的应用程序变得无用;用户卡住了。
为了让这个错误更容易被发现,我在https://github.com/mattneub/CNContactViewControllerBug 发布了一个示例项目。
要进行实验,请运行项目并执行以下步骤:
点击按钮(未知人物)。
根据要求授予访问权限。
在我们的导航界面中,您会看到部分联系人(请注意顶部的“返回”按钮)。
点击添加到现有联系人。出现联系人选择器。
点击取消。从这里开始做什么实际上并不重要,但点击取消是最简单的,也是解决问题的最快方法。
我们现在回到了部分联系,但导航界面不见了。用户无法逃离这个界面。 该应用程序已关闭。
澄清一下,这里是您需要采取的步骤的屏幕截图:
点击添加到现有联系人以查看:
点击取消查看此内容;观察它和第一个屏幕截图一样,但是导航栏不见了:
我尝试了很多方法来解决这个错误,但似乎没有办法。据我所知,这个窗口是由“进程外”框架呈现的,而不是你的应用程序的一部分。你无法摆脱它。
那么问题是什么?我想是这样的:谁能告诉我一种使这个视图控制器(以这种形式)可用的方法?有没有我没有找到的解决方法?
编辑 这个错误出现在 iOS 9.0 中,并且仍然存在于 iOS 9.1 中。在评论中,@SergeySkopus 报告说切换到已弃用的通讯簿框架并没有帮助。错误在某处的底层结构中。
【问题讨论】:
-
这些测试是使用 iOS 9 和(在设备上)iOS 9.0.2 执行的。以雷达 22984883 的形式向 Apple 报告。
-
如果您找到解决方法,请更新此帖子。有类似的问题。在 iPad 上更糟糕的是,如果你使用 [CNContactViewController viewControllerForContact:] 然后尝试编辑生日,同样的事情会发生……导航栏完全消失,让用户卡在这个屏幕上。看起来这个问题在 iOS9.1 (beta3) 中也没有得到修复。
-
@matt: 如果你
Create New Contact>Cancel,导航应该返回 -
@matt:确实是的——这很糟糕,因为导航完全离开了猫王的建筑物。不幸的是,这是一个严重的错误,除了 Apple 实际修复它之外,我无法看到任何解决方案。 可能值得尝试的一件事是在消失的 UINavigationBar 上方设置另一个 UINavigationBar 并且不允许视图使用整个屏幕,尽管它也可能会消失。
-
谢谢@Andrew - 你可能想添加一个注释来提醒我现有的 bug Radar 22984883。