UIHostingController必须在视图控制器层次结构中吗



我想在基于UIKit的UI中嵌入一些SwiftUI,但不幸的是,苹果没有提供UIHostingView,只有UIHostingController。我可以或多或少地忽略该控制器,只使用它的视图吗?或者我真的需要将其添加为子视图控制器吗?如果我不这样做会怎样?

问题是,在某些情况下,查找父视图控制器可能很困难。UIView本身对视图控制器一无所知,所以我必须想出自己的方法来跟踪哪个是"视图控制器";当前";视图控制器。除非真的有必要,否则我宁愿不这么做。

到目前为止,在我的实验中,它在小时候不添加UIHostingController的情况下运行良好。设备旋转处理得当,SwiftUI的暗模式覆盖(.colorScheme()(甚至可以通过嵌入来工作。

使用UIHostingController(rootView:),您只需传入一个SwiftUIView

您可以通过执行以下操作将其视为UIView

let myView = UIHostingController(rootView: Text("Hello world!")).view

然后将其添加为子视图,例如:

let parent = UIView()
parent.addSubview(myView)

相关内容

最新更新