美文网首页
SwiftUI—如何实现对视图显示和消失事件的监听

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

作者: anny_4243 | 来源:发表于2020-07-20 14:18 被阅读0次

    原文链接:https://github.com/fzhlee/SwiftUI-Guide#-%E7%AC%AC6%E8%8A%82onappear-ondisappear-

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

    示例代码:

    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!")
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:SwiftUI—如何实现对视图显示和消失事件的监听

          本文链接:https://www.haomeiwen.com/subject/niyekktx.html