从UIKit视图跳转至SwiftUI视图时默认返回按钮不显示
解决UIKit跳转SwiftUI后无返回按钮的问题
原因
使用UIHostingController将SwiftUI视图推入UIKit导航栈时,SwiftUI视图本身不会自动触发UIKit导航栏的返回按钮显示逻辑,导致页面顶部缺少返回按钮。
两种可行解决方法
方法1:给UIHostingController设置标题
在跳转前为UIHostingController添加标题,UIKit导航栏会自动生成返回按钮:
let swiftUIController = UIHostingController(rootView: SwiftUIView()) swiftUIController.title = "SwiftUI页面" // 新增标题设置 self.navigationController?.pushViewController(swiftUIController, animated: true)
方法2:在SwiftUI视图中嵌入导航容器
如果需要SwiftUI原生导航体验,用对应版本的导航容器包裹视图,设置标题后会自动显示返回按钮:
import SwiftUI struct SwiftUIView: View { var body: some View { // iOS 16及以上用NavigationStack,iOS 13-15替换为NavigationView NavigationStack { Text("Hello, World!") .navigationTitle("SwiftUI页面") } } }
内容的提问来源于stack exchange,提问作者iceiscold
相关产品推荐
相关产品推荐

