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

iOS16 Beta中UIKit嵌入SwiftUI视图导航栏内容跳动问题求助

iOS 16测试版UIKit嵌入SwiftUI导航动画异常问题

不确定这是iOS 16测试版(当前使用Xcode 14 Beta 3、iOS开发者Beta 3)的Bug,还是自身实现有误(大概率是后者)。

在现有基于UINavigationController的UIKit应用中,尝试通过UIHostingController推送SwiftUI视图时,目标视图出现奇怪的动画Bug:内容先短暂显示,随后跳至正确位置。将NavigationBar标题设置为.inline格式或完全空白后,能观察到标题最初是以.large格式渲染,切换为.inline后,内容会上移填补标题原本占据的空间。

已制作示例应用并向苹果提交Bug报告,仍希望得到社区建议,相关信息如下:

相关代码

UIKit视图控制器代码

func showSwiftUIView() {
    let vc = UIHostingController(rootView: SwiftUIView())
    self.navigationController?.pushViewController(vc, animated: true)
}

SwiftUI视图代码

import SwiftUI
import Charts

struct SwiftUIView: View {
    var body: some View {
        testView()
    }
}

struct testView: View {
    
    @State private var pickerState: Bool = false
    
    var body: some View {
        VStack (alignment: .leading) {
            Text("Test").padding()
            Chart {
                BarMark(x: .value("Month", 1), y: .value("Count", 3))
                BarMark(x: .value("Month", 2), y: .value("Count", 7))
                BarMark(x: .value("Month", 3), y: .value("Count", 2))
                BarMark(x: .value("Month", 4), y: .value("Count", 1))
            }
        }
        .navigationTitle("")
        .navigationBarTitleDisplayMode(.inline)
    }
}

struct SwiftUIView_Previews: PreviewProvider {
    static var previews: some View {
        SwiftUIView()
    }
}

Bug现象

导航动画Bug录屏
(可看到"Test"标签和图表在视图加载后向上跳动)

内容的提问来源于stack exchange,提问作者Rachid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 06:18:28