gpt4 book ai didi

ios - 将数据从 SwiftUI View 传递到 UIViewController

转载 作者:行者123 更新时间:2023-12-01 16:11:51 32 4
gpt4 key购买 nike

我一直在测试 SwiftUI 看看我能走多远。现在,我想知道是否可以从 SwiftUI View 传递字符串直接到 UIViewController .我想用 UILabel 显示这个字符串. UILabel这是我的 Storyboard上的全部内容。

以下是我的 View Controller ( 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 传递数据的简单方法 ViewUIViewController ?谢谢。

最佳答案

UIViewControllerRepresentable不是代理,而是包装器,所以一切都应该手动传输,比如

struct HomeViewControllerRepresentation: UIViewControllerRepresentable {
var message: String

func makeUIViewController(context: UIViewControllerRepresentableContext<HomeViewControllerRepresentation>) -> HomeViewController {
let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "homeViewController") as! HomeViewController
controller.message = self.message
return controller
}

func updateUIViewController(_ uiViewController: HomeViewController, context: UIViewControllerRepresentableContext<HomeViewControllerRepresentation>) {

}
}

关于ios - 将数据从 SwiftUI View 传递到 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62443417/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com