首页 > 其他分享 >SwiftUI 界面的自我关闭(dismiss)

SwiftUI 界面的自我关闭(dismiss)

时间:2023-06-11 23:14:08浏览次数:54  
标签:界面 dismiss showingDetail SwiftUI var isPresented DetailView View

使用dismiss环境变量

NavigationStackView、Sheet等产生的次级界面,可使用 @Environment(\.dismiss) var dismiss 自行控制消失。

struct DetailView: View {
    @Environment(\.dismiss) var dismiss

    var body: some View {
        Button("关闭 DetailView") {
            dismiss()
        }
    }
}

struct ContentView: View {
    @State private var showingDetail = false

    var body: some View {
        Button("显示 DetailView") {
            showingDetail = true
        }
        .sheet(isPresented: $showingDetail) {
            DetailView()
        }
    }
}

传递binding参数

除了使用dismiss环境变量,另一种同样常用的方式是,向次级界面传递binding参数。

struct DetailView: View {
    @Binding var isPresented: Bool

    var body: some View {
        Button("关闭 DetailView") {
            isPresented = false
        }
    }
}

struct ContentView: View {
    @State private var showingDetail = false

    var body: some View {
        Button("显示 DetailView") {
            showingDetail = true
        }
        .sheet(isPresented: $showingDetail) {
            DetailView(isPresented: $showingDetail)
        }
    }
}

标签:界面,dismiss,showingDetail,SwiftUI,var,isPresented,DetailView,View
From: https://www.cnblogs.com/ZJT7098/p/17473820.html

相关文章

  • phonegap3.1.0自学笔记01_命令行界面(CLI)简单使用
    要使用phonegap的CLI必须首先安装好phonegap,phonegap的安装还请参看我的另外一篇文章:windows7搭建phonegap3Android开发环境。本篇文章介绍CLI的简单使用,由于本人水平有限,还请大侠不要拍砖。 phonegap3.1.0使用命令行去创建应用程序的框架,然后我们可以基于命令行创建的程序再去进......
  • Python+SQLite开发无界面版通信录管理系统
    本文重点在于演示Python对SQLite数据库的操作,以及命令行式菜单的工作原理和实现。首先使用SQLiteDatabaseBrowser创建SQLite数据库data.db,然后创建一个数据表addressList,最后在数据表addressList中创建字段id(INTEGERPRIMARYKEY类型)、name(TEXT类型)、sex(TEXT类型)、age(NUMERIC类型......
  • 006Arch中Docker的基本使用---可视化界面(portainer)
    外链:Docker入门到实践(九)docker可视化界面portainer的安装与使用_零碎de記憶的博客-CSDN博客InstallPortainerBEwithDockeronWSL/DockerDesktop-PortainerDocumentation安装portainer查询前10个Portainer镜像dockersearchportainer--limit10拉取Po......
  • QT桌面(实现界面的滑动切换)
    (文章目录)前言在ARMLinux中使用QT如何实现滑动翻页切换界面的效果呢?在ARM中是没有自带的鼠标的,那么我们如何实现滑动翻页呢?经过测试发现在ARM中运行QT程序也是可以通过重写鼠标事件来捕获触屏动作的,在ARM中滑动屏幕被定义成了鼠标左键事件,那么这样就有思路了,重写鼠标事件。一......
  • EndNote参考文献格式Output Styles界面介绍
      本文对EndNote软件修改论文参考文献引用格式的界面与各选项参数加以详细介绍。  利用EndNote软件进行论文参考文献的插入可以说是非常方便;但其亦具有一个问题,就是对中文文献的支持不太友好;之前也用过NoteExpress,这一国产软件对于中文参考文献的支持性很好,但是由于论文较多,......
  • 解决电脑无法远程Ubuntu,不出界面
    我用的win11远程乌班图22.0参考:https://service.oray.com/question/11969.html......
  • 1.2使用OpenDaylight界面下发流表
    使用OpenDaylight界面下发流表任务目的1、掌握YANGUI下发流表的方式,了解YANGUI的功能特点,以及其在OpenDaylight架构中所起的作用。2、通过下发流表的过程,梳理出数据包处理的简单流程。并且进一步了解单级流表和多级流表的处理过程。任务环境设备名称软件环境(镜像)硬件......
  • CentOS 7 在登录界面隐藏普通用户
    CentOS7在登录界面隐藏普通用户例如隐藏普通用户“test”1[root@localhost~]#cd/var/lib/AccountsService/users/2[root@localhostusers]#vitest[User]SystemAccount=true保存退出:wq即可 ......
  • 简单的图形界面
    以下是一个更加复杂的C++代码,它的作用是实现一个简单的图形界面,通过鼠标点击和键盘输入来操作和控制图形界面:#include<iostream>#include<graphics.h>usingnamespacestd;intmain(){initgraph(640,480);//初始化图形界面setbkcolor(WHITE);//设置背景色为......
  • 氚云--进行空间赋值,页面跳转,弹出新增数据界面框
    一、前端数据赋值场景:进行判断风险等级,单选框自动选中对应等级颜色。解决:先创建一个单行文本进行判断等级颜色,之后前端赋值给单选框debugger;varparent=this;varenviroment=$.SmartForm.ResponseContext;//获取当前对象环境变量parent.F......