我在聊天界面中实现了Force Touch功能。当用户按压其他用户的聊天气泡时,会呈现该用户的个人资料。但出现了一个奇怪的问题,当轻触聊天气泡时,交互式过渡会卡住,只能看到应该被淡出的视图屏幕截图。我使用View Hierarchy Debugger调试过这个问题,并且确认UITransitionView是最顶层的视图。应用程序不会崩溃——它仍在运行,用户仍然可以接收消息,但由于顶部的屏幕截图,无法查看消息、退出屏幕等。有人遇到过类似的问题吗?听起来像是苹果的bug。
- (id <UIViewControllerPreviewing>)registerForPreviewingWithDelegate:(id<UIViewControllerPreviewingDelegate>)delegate
sourceView:(UIView *)sourceView NS_AVAILABLE_IOS(9_0);
实现此方法的方式。
我刚刚突然调用了这个函数两次(一次在超类的viewDidLoad()
中,一次在子视图控制器中),当我在我的子视图控制器中删除一次时,这个错误就被修复了!太神奇了...
这仍然是一个苹果的bug,因为它没有任何意义。但是,希望这个答案可以帮助遇到同样问题的开发者。
顺便说一下,我刚刚浏览了你的Github代码,没有发现注册方法有重复调用。也许这个bug还有其他原因。你可以尝试在你的UITableViewController
的子类中删除注册方法。另外,我在一个视图控制器使用ComponentKit时也复现了这个问题。