SwiftUI button 与sheet的使用

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无法全屏。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容