SwiftUI—如何使用@ObservedObject监听实例对象

简介: SwiftUI—如何使用@ObservedObject监听实例对象

@ObservableObject标记和@State标记的功能相似,不同之处是:@ObservableObject是用来修饰对象的。


示例代码:


class UserModel: ObservableObject { 
//如果用@ObservableObject标记修饰一个对象,那么这个对象必须要遵循ObservableObject协议。所以在此定义一个类,并且该类遵循这个协议
    @Published var nickName: String = "" //@Published标记和@ObservableObject是配合使用的,用来修饰遵循可观察对象协议的类的属性,表示这个属性需要被SwiftUI监听
}
struct ContentView : View {
    @ObservedObject var model = UserModel() //添加一个实例属性用来进行数据的传递,并给它添加@ObservedObject标记,从而使实例的nickName属性可以与视图进行绑定
    @State var isPresented = false //标识是否弹出警告窗口
    let dismiss = Alert.Button.default(Text("OK")) {} //初始化一个警告窗口里的按钮,并设置按钮的标题文字
    var alert: Alert { //表示一个警告窗口
        Alert(title: Text("Your nickname"), //初始化一个警告窗口,并设置它的标题、信息和关闭按钮。其中信息内的文字和实例对象的NickName属性进行了绑定
             message: Text("\(self.model.nickName)"),
             dismissButton: dismiss)
    }
    var body: some View {
        VStack {
            TextField("Your nickname", text: $model.nickName)
            .padding()
            Button(action: {
                self.isPresented = true
            }) {
                Text("Show")
            }.alert(isPresented: $isPresented) { () -> Alert in
                alert
            }
        }
    }
}


2466108-c775df52190abef1.gif


目录
相关文章
|
4月前
|
JavaScript 前端开发 Java
v-if和v-show的区别?使用场景?v-if状态改变调用钩子函数的示例
这篇文章详细阐述了Vue中`v-if`和`v-show`指令的共同点、区别、使用场景以及它们在组件和普通元素上附属时的不同表现,并通过示例展示了状态改变时对钩子函数调用的影响。
v-if和v-show的区别?使用场景?v-if状态改变调用钩子函数的示例
Listener概述、监听对象的创建和销毁、监听域对象属性变化、监听会话相关的感知型监听器及监听器实现
Listener概述、监听对象的创建和销毁、监听域对象属性变化、监听会话相关的感知型监听器及监听器实现
104 0
activiti 全局流程监听ActivitiEventListener,实现监听不同类型事件,不需要在acitivit中配置任务监听,非常方便
activiti 全局流程监听ActivitiEventListener,实现监听不同类型事件,不需要在acitivit中配置任务监听,非常方便
1185 0
activiti 全局流程监听ActivitiEventListener,实现监听不同类型事件,不需要在acitivit中配置任务监听,非常方便
|
XML 前端开发 JavaScript
创建组件的第一种方式并为组件传递 props 数据|学习笔记
快速学习创建组件的第一种方式并为组件传递 props 数据
117 0
创建组件的第一种方式并为组件传递 props 数据|学习笔记
SwiftUI极简教程10:State状态和Binding绑定的使用
SwiftUI极简教程10:State状态和Binding绑定的使用
1030 0
SwiftUI极简教程10:State状态和Binding绑定的使用
SwiftUI—如何实现对视图显示和消失事件的监听
SwiftUI—如何实现对视图显示和消失事件的监听
696 0
SwiftUI—如何实现对视图显示和消失事件的监听
|
Swift 编译器
Swift - 实例对象调用协议方法优先级分析/ witness_methos witness_table分析
本文主要探究: 当一个类遵循了协议,且协议和类都有方法实现时,实例对象调用方法的优先顺序
Swift - 实例对象调用协议方法优先级分析/ witness_methos witness_table分析
|
前端开发 C#
利刃 MVVMLight 4:绑定和绑定的各种使用场景
原文:利刃 MVVMLight 4:绑定和绑定的各种使用场景 一、绑定:  主要包含元素绑定和非元素绑定两种。 1、元素绑定,是绑定的最简单形式,源对象是WPF的元素,并且源对象的属性是依赖项属性。
867 0