Swiftui 使用第一个视图中的数据从第二个视图初始化一个类

Swiftui 使用第一个视图中的数据从第二个视图初始化一个类,swiftui,Swiftui,在我的初始ContentView()中,我有一个显示UIImagePicker的按钮,当选择图像时,我会导航到第二个视图,在那里我可以从UIImagePickerController.InfoKey查看图像及其数据 我目前有一个ImageManager类,它被设置为一个EnvironmentObject,我将InfoKey传递给它,然后设置该类中的所有变量——它可以工作,但感觉很混乱 我想做的是在导航到SecondView时初始化ImageManager类,因为这是唯一需要该数据的视图 我尝试将

在我的初始ContentView()中,我有一个显示UIImagePicker的按钮,当选择图像时,我会导航到第二个视图,在那里我可以从UIImagePickerController.InfoKey查看图像及其数据

我目前有一个ImageManager类,它被设置为一个EnvironmentObject,我将InfoKey传递给它,然后设置该类中的所有变量——它可以工作,但感觉很混乱

我想做的是在导航到SecondView时初始化ImageManager类,因为这是唯一需要该数据的视图

我尝试将InfoKey作为变量传递:

@State var InfoKey: [IImagePickerController.InfoKey: Any]

SecondView(key: self.infoKey)
但这会崩溃,因为在选择图像之前我没有任何数据


解决这个问题的最佳方法是什么?

@State
必须有初始值,所以只使用空容器

@State var infoKey: [IImagePickerController.InfoKey: Any] = [:]
然后将其作为绑定传递到
SecondView

SecondView(key: self.$infoKey)
在哪里

struct SecondView: View {
    @Binding var key: [IImagePickerController.InfoKey: Any]