SwiftUI多个.fileExporter修饰符无法正常显示的问题咨询
SwiftUI多
.fileExporter修饰符显示问题及解决方法 在SwiftUI视图树中使用多个.fileExporter修饰符时,会出现仅能显示其中一个的问题,具体情况如下:
问题示例代码
外部视图(ContentView)
struct ContentView { var body: some View { VStack { NestedView() } .fileExporter(isPresented: $showExporter1, document: document1, contentType: .someFileType, defaultFilename: defaultFilename) { ... } } }
嵌套视图(NestedView)
struct NestedView { var body: some View { VStack { Button { showExporter2 = true } label: { Text("Export") } } .fileExporter(isPresented: $showExporter2, document: document2, contentType: .anotherFileType, defaultFilename: defaultFilename2) { ... } } }
问题现象
上述代码中,仅外部ContentView的导出器可以正常显示,点击NestedView中的Export按钮无任何反应,内部的导出器无法触发。
尝试的调整
曾尝试将内部的.fileExporter修饰符移至外部修饰符旁,即给同一视图附加两个.fileExporter修饰符,但依然只有最后一个导出器能正常显示。
解决方法
最终验证发现,.fileExporter无法在嵌套视图结构中共存,将两个.fileExporter附加到同级视图即可正常工作,实现点击不同按钮显示对应文件导出器的需求。
内容的提问来源于stack exchange,提问作者claude
相关产品推荐
相关产品推荐

