3D Touch Peek 将屏幕变白

3D Touch Peek turns the screen white

我正在尝试将 3D Touch Preview & Commit Segue 添加到我的应用程序,但出于某种原因,每当我尝试在 iOS 模拟器中查看该区域时被窥视的视图控制器后面变成完全白色,而它本来是模糊的。即使我尝试在另一个应用程序中以编程方式实现 3D Touch,也会发生这种情况。

在我使用故事板完成的应用程序中,我为 segue 选择了以下选项:

我尝试按照以下步骤在另一个应用程序中以编程方式执行此操作(我在该应用程序中也有相同的错误):

  1. viewDidLoad
  2. 中调用 registerForPreviewing(with: self, sourceView: view)
  3. 实现UIViewControllerPreviewingDelegate如下:
    1. previewingContext(_:viewControllerForLocation:) 中,获取正确的 indexPath,将上下文的源矩形设置为它,从情节提要中实例化详细导航控制器,然后 return 它。
    2. previewingContext(_:commit:) 中,将 (viewControllerToCommit as? UINavigationController)?.rootViewController 推入导航堆栈。

我不完全确定这个错误是否特定于 iOS 模拟器,因为我没有启用 3D Touch 的 iOS 设备,但是是否需要任何额外的步骤来正确实施偷看和弹出?

这是我遇到的错误示例:

我设法在支持 3D Touch 的 iOS 设备上测试了这些应用程序,并且我可以确认 Peek 和 Pop 在这两个应用程序的设备上都能完美运行。因此我得出结论,这是一个特定于模拟器的错误。