You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 13:58:15