【发布时间】:2020-02-21 00:02:37
【问题描述】:
我想通过更改@State 变量的状态来触发 SwiftUI 中子视图的更新,因为当我更改钱包对象时它不会单独更新,因为它被定义为 EnvironmentObject。问题是我必须用 environmentObject 初始化视图,它返回一些视图,并且不能将它转换为 WalletView,因为它应该看起来应该。
var walletView = WalletView().environmentObject(Wallet(cards: reminders))
if walletView = walletView as? WalletView{
walletView.isPresented = !walletView.isPresented
}
如何访问 WalletView 对象?
我试过了:
var walletView = WalletView()
let someWalletView = walletView.environmentObject(Wallet(cards: reminders))
walletView.isPresented = !walletView.isPresented
但 walletView 似乎没有更新。有什么线索吗?
【问题讨论】:
-
能不能加个ContentView的代码清楚一点,你想实现什么?
-
“我想触发子视图的更新......因为当我更改钱包对象时它不会单独更新,因为它被定义为 EnvironmentObject。” ???它可以做到......你最好解决它,根据定义,从某些视图进行投射是不可能的。
-
谢谢,我通过将变量更改为@Binding 解决了这个问题。