我想在我的基于 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(使用前将#替换为@)