iPad 9G全屏切半屏时出现UIViewControllerHierarchyInconsistency崩溃求助
iPad 9G全屏切半屏时出现UIViewControllerHierarchyInconsistency崩溃求助
各位同行好,最近在适配iPad 9G的分屏功能时踩了个坑:从全屏切换到半屏模式时,在animateTransition:方法里做视图的添加/移除操作,会触发UIViewControllerHierarchyInconsistency崩溃,折腾了好一阵没搞定,来求助大家!
先贴出我当前用到的相关代码片段:
- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext { UIViewController *VC = self.playerAdapterParentViewController; UIView *superview = ((BBLiveRoomCoordinatorViewControllerHD *)self.playerAdapterParentViewController).roomHierarchyManager.playerLifeCycle.superview; NSLog(@"zhaofei_superview_trans: %p", superview); // 这里是添加/移除视图的业务逻辑 }
目前我自己排查了几个方向,但还没找到根因:
- 怀疑是转场过程中视图层级不稳定:系统在处理分屏转场时本身会调整视图控制器层级,这时候我手动操作视图会不会和系统逻辑冲突?
- 强转类型的安全性:直接把父控制器强转成
BBLiveRoomCoordinatorViewControllerHD,会不会存在类型不匹配的情况,导致后续访问roomHierarchyManager时出现异常,间接引发层级问题? - 分屏模式的生命周期特殊性:iPad分屏会多次触发
traitCollectionDidChange:、viewWillLayoutSubviews这类回调,是不是我选的操作时机不对?
有没有大佬遇到过类似的场景?或者有其他排查思路可以指点一下吗?
内容来源于stack exchange
相关产品推荐
相关产品推荐

