我一直在测试 SwiftUI,看看它能走多远。现在,我想找出是否可以从 SwiftUI 的 View
直接传递字符串到 UIViewController
。我想用 UILabel
显示这个字符串。我的故事版上只有 UILabel
。
以下是我的视图控制器 (UIViewController
)。
import UIKit
import SwiftUI
class HomeViewController: UIViewController {
var message = String()
@IBOutlet weak var messageLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
messageLabel.text = message
}
}
struct HomeViewControllerRepresentation: UIViewControllerRepresentable {
func makeUIViewController(context: UIViewControllerRepresentableContext<HomeViewControllerRepresentation>) -> HomeViewController {
UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "homeViewController") as! HomeViewController
}
func updateUIViewController(_ uiViewController: HomeViewController, context: UIViewControllerRepresentableContext<HomeViewControllerRepresentation>) {
}
}
我的 SwiftUI View
如下所示。
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: HomeViewControllerRepresentation(message: "GGG")) { // Error
Text("Tap me")
}
}
.navigationBarTitle("")
.navigationBarHidden(true)
}
}
}
我希望只需传递HomeViewControllerRepresentation字符串即可,但不起作用。有没有一种简单的方法从SwiftUI视图传递数据到UIViewController?谢谢。