SwiftUI 中想要不跳轉(zhuǎn)從主View彈出一個(gè)View怎虫,以前在swift中,可以直接選擇一按鈕拖線到新的View
struct sheetView: View {
@State var open = false
var body: some View {
VStack{
Button(action: {
self.open = true
}) {
Text("展開")
}
}.sheet(isPresented: $open) {
OpenView()
}
}
}
struct OpenView: View {
var body: some View {
VStack{
Text("彈出的View")
}
}
}
在你想彈出的View下方.sheet()后選擇isPresented,然后綁定一個(gè)@state變量,當(dāng)這個(gè)變量值變化時(shí),刷新View誓竿,所以在button中點(diǎn)擊后觸發(fā)方法,改變了值谈截,所以刷新視圖彈出筷屡。你可以選擇下拉關(guān)閉這個(gè)View,但是有時(shí)需要用戶點(diǎn)擊一個(gè)按鈕后簸喂,自動(dòng)關(guān)閉毙死,就需要實(shí)現(xiàn)下面方法
struct OpenView: View {
@Environment(\.presentationMode) var persentationMode
var body: some View {
VStack{
Text("彈出的View")
Button(action: {
self.persentationMode.wrappedValue.dismiss()
}) {
Text("關(guān)閉")
}
}
}
}
在ios13中彈出的View無法全屏。