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