我试图消除通过.sheetSwiftUI中呈现的模式视图-由Button,在NavigationViews 内由a调用,navigationBarItems如下所示:
struct ModalView : View {
    @Environment(\.presentationMode) var presentationMode  
    var body: some View {       
        Button(action: {
            self.presentationMode.value.dismiss()
        }, label: { Text("Save")})
    }   
}
struct ContentView : View {
    @State var showModal: Bool = false
    var body: some View {
         NavigationView { 
           Text("test")
           .navigationBarTitle(Text("Navigation Title Text"))
           .navigationBarItems(trailing:
               Button(action: {
                   self.showModal = true
               }, label: { Text("Add") })
                   .sheet(isPresented: $showModal, content: { ModalView() })
           )
        }
    }
}
轻击“保存”按钮时,模态不会消失,它只会保留在屏幕上。摆脱它的唯一方法是向下滑动模态。
打印self.presentationMode.value始终显示的值,false因此似乎认为没有显示它。
仅当从中显示时才会发生这种情况NavigationView。拿出来,它工作正常。
我在这里缺少什么吗,或者这是Beta版问题?
您需要将.sheet按钮移到外面。
NavigationView {
  Text("test")
  .navigationBarTitle(Text("Navigation Title Text"))
  .navigationBarItems(trailing:
     Button("Add") {
       self.showModal = true
     }
  )
  .sheet(isPresented: $showModal, content: { ModalView() })
}
您甚至可以将其移动到NavigationView封闭之外。
NavigationView {
  Text("test")
  .navigationBarTitle(Text("Navigation Title Text"))
  .navigationBarItems(trailing:
     Button("Add") { self.showModal = true }
  )
}
.sheet(isPresented: $showModal, content: { ModalView() })
请注意,如果您有一个简单的文本按钮,也可以简化Button调用。
| 归档时间: | 
 | 
| 查看次数: | 703 次 | 
| 最近记录: |