如何以编程方式显示SwiftUI覆盖?

如何以编程方式显示SwiftUI覆盖?,swiftui,Swiftui,我有一个用户完成的表单,其中包括一个图像上传,因为上传到服务器需要一点时间,我想显示上传的进度视图 我已经创建了视图并将其连接到upload progress data(上传进度数据),这一切都很好,我可以将其作为永久覆盖,但我只想在按下upload(上传)按钮时覆盖它 我该怎么做 我的进度视图 结构ProgressIndicator:视图{ @状态变量imageUploadAmount=0.0 var进度:进度 var body:一些观点{ VStack{ ProgressView(“上载…

我有一个用户完成的表单,其中包括一个图像上传,因为上传到服务器需要一点时间,我想显示上传的进度视图

我已经创建了视图并将其连接到upload progress data(上传进度数据),这一切都很好,我可以将其作为永久覆盖,但我只想在按下upload(上传)按钮时覆盖它

我该怎么做

我的进度视图


结构ProgressIndicator:视图{
@状态变量imageUploadAmount=0.0
var进度:进度
var body:一些观点{
VStack{
ProgressView(“上载…”,值:imageUploadAmount,总计:1)
}.onReceive(progress.$upload,执行:{uuu}in
imageUploadAmount=progress.upload
})
}
}
表单视图

struct AddAClimb:View{
@环境对象变量screenCoordinator:screenCoordinator
@ObservedObject var progress=progress()
@状态私有变量showingImagePicker=false
@国家私有变量selectedTypeIndex:Int=0
@国家私有变量名称=“”
@国家私有变量等级=“”
@国家私有变量描述=“”
@国家/私人var country=“”
@国家私有var区域=“”
@国家私有变量crag=“”
@国家私有变量节=“”
@国家私有变量height=“”
@国家私有变量long=“0.0”
@国有私有var lat=“0.0”
@国家私有var stars=0
@国家私有var映像:映像?/=“默认”
@国家私有var imageUrl=“默认”
@国家私有变量inputImage:UIImage?
@状态专用变量图标=[“”]
@状态变量pitchCount=1
@国家私有变量间距=[“”,“”]
让cloudinary=CLDCloudinary(配置:ImageController().config)
private var UplateOptions=[“贸易”、“体育”、“博尔德”、“独奏”、“援助”]
var body:一些观点{
形式{
章节(标题:文本(“爬升细节”)){
HStack{
TextField(“爬升名称”,text:$Name)
}
选择器(“爬升类型”,选择:$selectedTypeIndex){

ForEach(0..并非所有组件都存在,但可能如下所示

    }.navigationBarTitle("Add a Climb", displayMode:.inline).sheet(isPresented: $showingImagePicker, onDismiss: loadImage) {
        ImagePicker(image: self.$inputImage)
    }
    .overlay(Group {
       if self.progress.isUploading {          
          ProgressIndicator(progress: self.progress) // << here !!
       }
    })
.navigationBarTitle(“添加爬升”,显示模式:.inline).sheet(显示:$showingImagePicker,onDismiss:loadImage){ 图像选择器(图像:self.$inputImage) } .叠加(组){ 如果self.progress.isupload{
ProgressIndicator(进度:self.progress)//我只想评论一下-拥有所有这些
@State
是一团乱麻。相反,使用
可观察对象
或将它们存储在一个结构中,然后继续使用
@State
@George\E是的,你知道这是怎么回事,你从一些开始,它们逐渐积累起来,一旦全部映射出来,它们就会在一个结构中。当然!从t开始他看起来,一个
元数据
(名称/类别)类/结构听起来最适合对这些进行分组。很好,这很有效。如果你有时间,你能解释一下该组正在做什么使其工作吗?