我将 SwiftUI 视图“TestView”添加到 contentView1 和 contentView2。但它仅添加到 contentView2 中。 任何人请帮助我理解为什么 SwiftUI View 没有添加到 contentView1。我已确保插座连接正确。
class ViewController: UIViewController {
@IBOutlet var contentView1: UIView!
@IBOutlet var contentView2: UIView!
override func viewDidLoad() {
super.viewDidLoad()
let vc = UIHostingController(rootView: TestView())
vc.view.translatesAutoresizingMaskIntoConstraints = false
self.addChild(vc)
contentView1.addSubview(vc.view)
contentView2.addSubview(vc.view)
vc.didMove(toParent: self)
}
}
struct TestView: View {
var body: some View {
Text("SwiftUI")
.onAppear(perform: {
print("OnAppear Called")
})
}
}
contentView1.addSubview(vc.view) contentView2.addSubview(vc.view)
一个给定的视图只能有一个父视图 - 您不能将相同的视图添加到两个不同的视图并期望它显示两次。创建两个单独的视图并将它们添加到每个内容视图中,您将看到它们。