SwiftUI3.0页面反向传值
SwiftUI3.0页面反向传值
SwiftUI反向传值是SwiftUI的重点之重,跟OC里面的代理,block,通知, swift里面的闭包,代理,通知 的方法类似,后者大家很熟,前者不怎么属性,必须遵守Combine 处理数据流的框架,
前者资料很少,后者资料很多
import SwiftUI
import Combine
//SwiftUI监视可观察对象(ObservableObject)的任何数据更改,并在数据更改后刷新视图。
final class UserData: ObservableObject{
//当数据变化时发送更新后的数据给视图,视图就会刷新
@Published var userLandmarks = landmarks
}
@EnvironmentObject var userData: UserData 不要实例化,让 外界传值,
最后
LandmarkList().environmentObject(UserData()) 传值
NavigationLink {
LandmarkDetail(landmark: landmark)
.environmentObject(userData)
} label: {
LandmarkCell(landmark: landmark)
}
定义成员属性的地方都要 进行 .environmentObject(userData)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!