SwiftUI—如何实现对视图显示和消失事件的监听

简介: SwiftUI—如何实现对视图显示和消失事件的监听

我们经常在列表显示之后,从网络下载新的数据。或者在用户登录表单消失之后,刷新当前页面的用户状态。这就需要实现对视图显示和消失事件的监听。


示例代码:


struct DetailView: View { //首先定义一个遵循View协议的结构体,作为需要进行显示或隐藏的视图
    var body: some View { //实现协议里规定必须实现的body属性,所有子视图都需要放置在body属性里
        Text("Detail")
        .onAppear { //通过onApear方法,对文本视图的显示事件进行监听
            print("DetailView appeared!") //当文本视图显示之后,在控制台输出一条日志
        }.onDisappear { //接着通过onDisappear方法,对文本视图的消失事件进行监听
            print("DetailView disappeared!") //当文本视图消失之后,在控制台输出一条日志
        }
    }
}
struct ContentView : View {
    @State private var isPresented = false //标识是否弹出模态窗口
    var body: some View
    {
        Text("Show Detail > ").sheet(isPresented: $isPresented, content: { //修改此处的文本视图,当点击文本视图时,弹出一个模态窗口,并设置模态窗口的内容为刚刚定义的视图
            DetailView()
        }).onTapGesture { //为文本视图添加一个触摸手势,当点击文本视图检测到手势事件时,弹出一个指定的模态窗口
            self.isPresented = true
        }.onDisappear {
            print("ContentView disappeared!")
        }.onAppear {
            print("ContentView appeared!")
        }
    }
}


2466108-b278a59276099098.webp.jpg


目录
打赏
0
0
0
0
5
分享
相关文章
小程序如何监听页面的滚动事件
小程序如何监听页面的滚动事件
319 0
|
10月前
|
C#
C# 禁止ComboBox滚动事件细谈
C# 禁止ComboBox滚动事件细谈
[虚幻引擎插件介绍] DTGlobalEvent 蓝图全局事件, Actor, UMG 相互回调,自由回调通知事件函数,支持自定义参数。
本插件可以在虚幻的蓝图 Actor, Obiect,UMG 里面指定绑定和执行消息,可带自定义参数。 参数支持 Bool,Byte,Int,Int64,Float,Name,String,Text,Vector,Rotator,Transform,Object,Actor。
116 0
iview的table 组件展开事件能否绑定到其他事件上?看这里!
iview的table 组件展开事件能否绑定到其他事件上?看这里!
253 0
iview的table 组件展开事件能否绑定到其他事件上?看这里!
复杂type页面封装库,支持多种状态切换和下拉刷新上拉加载
目录介绍 1.复杂页面库介绍 2.本库优势亮点 2.1 支持多种状态切换管理 2.2 支持添加多个header和footer 2.3 支持侧滑功能和拖拽移动 2.4 其他亮点介绍 3.如何使用介绍 3.
1274 0
WPF的消息机制(三)- WPF内部的5个窗口之处理激活和关闭的消息窗口以及系统资源通知窗口
原文:WPF的消息机制(三)- WPF内部的5个窗口之处理激活和关闭的消息窗口以及系统资源通知窗口 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.
1053 0
WPF Label控件在数据绑定Content属性变化触发TargetUpdated事件简单实现类似TextChanged 事件效果
原文:WPF Label控件在数据绑定Content属性变化触发TargetUpdated事件简单实现类似TextChanged 事件效果   本以为Label也有TextChanged 事件,但在使用的时候却没找到,网友说Label的Content属性改变肯定是使用赋值操作,赋值的时候就可以对其进行相应的操作所以不需TextChanged 事件。
2106 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等