StateObject
实例化可观察对象的属性包装器类型。
@frozen @propertyWrapper struct StateObject<ObjectType> where ObjectType : ObservableObject
使用教程
通过将@StateObject属性应用于属性声明并提供符合ObservableObject协议的初始值,从而在View,App或Scene中创建状态对象:
@StateObject var model = DataModel()
SwiftUI仅为声明该对象的结构的每个实例创建一次该对象的新实例。当可观察对象的已发布属性更改时,SwiftUI将更新依赖于这些属性的任何视图的部分
Text(model.title) // Updates the view any time `title` changes.
您可以将状态对象传递到具有ObservedObject属性的属性中。您也可以通过应用environmentObject(_ :)修饰符将对象添加到视图层次结构的环境中:
ContentView()
.environmentObject(model)
如果创建如上面的代码所示的环境对象,则可以使用EnvironmentObject属性在ContentView或其任何后代中读取该对象:
@EnvironmentObject var model: DataModel
使用$运算符获取对状态对象的属性之一的绑定。当您要创建与对象属性之一的双向连接时,请使用绑定。例如,您可以让Toggle控制存储在模型中的名为isEnabled的布尔值:
Toggle("Enabled", isOn: $model.isEnabled)
推荐
基础文章推荐
经典教程推荐
技术源码推荐
推荐文章
CoreData篇
Combine篇
TextField篇
- 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
- 《SwiftUI实战之TextField风格自定义与formatters》
- 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》
- 《SwiftUI 当键盘出现时避免TextField被遮挡自动向上移动》
- 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》
JSON文件篇
一篇文章系列
- SwiftUI一篇文章全面掌握List(教程和源码)
- 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
- SwiftUI一篇文章全面掌握Picker,解决数据选择(教程和源码)
- SwiftUI一篇文章全面掌握Form(教程和源码)
- SwiftUI Color 颜色一篇文章全解决
技术交流
QQ:3365059189
SwiftUI技术交流QQ群:518696470
- 请关注我的专栏icloudend, SwiftUI教程与源码
https://www.jianshu.com/c/7b3e3b671970