我在 Swift 中有一個簡單的視圖:
import SwiftUI
import UIKit
import React
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func loadView() {
loadReactNativeView()
}
func loadReactNativeView() {
let jsCodeLocation = URL(string: "http://localhost:8081/index.bundle?platform=ios")!
let rootView = RCTRootView(
bundleURL: jsCodeLocation,
moduleName: "YourApp",
initialProperties: nil,
launchOptions: nil
)
self.view = rootView
}
}
struct ContentView: View {
var body: some View {
ViewController().view
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
但是編譯器抱怨:Return type of property 'body' requires that 'UIView' conform to 'View'
有人可以幫我理解我做錯了什么嗎?我需要使用 UIViewController 來呈現視圖。
這是 Swift 樣板給出的我的主要實作:
import SwiftUI
@main
struct content_iosApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
uj5u.com熱心網友回復:
您不能UIView在SwiftUI View. 即使可以,您也看不到任何東西,因為在將 aUIView從 a添加UIViewController到另一個時,您需要將該 Controller 添加為子項。
為了使用你的 ViewControllerSwiftUI你需要UIViewControllerRepresentable像這樣包裝它:
struct SomeView: UIViewControllerRepresentable {
func makeUIViewController(context: Context) -> ViewController {
let viewController = ViewController()
//additional setup
return viewController
}
func updateUIViewController(_ uiViewController: ViewController, context: Context) {
//update Content
}
}
和你的內容視圖:
struct ContentView: View {
var body: some View {
SomeView()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/483967.html
標籤:迅速
