SwiftUI

SwiftUI button 与sheet的使用

2020-03-18  本文已影响0人  Attempt_30b7

SwiftUI 中想要不跳转从主View弹出一个View,以前在swift中,可以直接选择一按钮拖线到新的View

在SwiftUI中实现如下效果 QQ20200318-123135-HD.gif
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,然后绑定一个@state变量,当这个变量值变化时,刷新View,所以在button中点击后触发方法,改变了值,所以刷新视图弹出。你可以选择下拉关闭这个View,但是有时需要用户点击一个按钮后,自动关闭,就需要实现下面方法

struct OpenView: View {
    @Environment(\.presentationMode) var persentationMode
    var body: some View {
        VStack{
           Text("弹出的View")
            
            Button(action: {
                self.persentationMode.wrappedValue.dismiss()
            }) {
                Text("关闭")
            }
        }
    }
}
QQ20200318-123951-HD.gif

在ios13中弹出的View无法全屏。

上一篇 下一篇

猜你喜欢

热点阅读