UIHostingController 是否必须位于视图控制器层次结构中?

2024-03-11

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

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

到目前为止,在我的实验中,它工作正常,无需添加UIHostingController作为一个孩子。设备旋转得到适当处理,并且 SwiftUI 的暗模式覆盖(.colorScheme())甚至可以通过嵌入来工作。


With UIHostingController(rootView:)你只需传入一个 SwiftUIView.

您可以将其视为UIView通过做:

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

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

let parent = UIView()
parent.addSubview(myView)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UIHostingController 是否必须位于视图控制器层次结构中? 的相关文章

随机推荐