SwiftUI 一些视图到它的根视图
SwiftUI some view to its root view
我想通过更改 @State 变量的状态来触发 SwiftUI 中子视图的更新,因为当我更改 Wallet 对象时它不会单独更新,因为它被定义为 EnvironmentObject。问题是我必须用 environmentObject 初始化视图,它 returns 一些视图,并且不能将它投射到 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 似乎没有更新。有什么线索吗?
SwiftUI 方法是在 inside 视图中更改视图状态,据我所知,您将如何处理 WalletView
它可以像在以下(沙哑):
struct WalletView: View {
...
var body: some View {
_some_internal_view
.onAppear { self.isPresented = true }
.onDisappear { self.isPresented = false }
}
}
我已经通过将变量 isPresented 更改为 @Binding 解决了这个问题,修改它然后触发对子类的更新。
我想通过更改 @State 变量的状态来触发 SwiftUI 中子视图的更新,因为当我更改 Wallet 对象时它不会单独更新,因为它被定义为 EnvironmentObject。问题是我必须用 environmentObject 初始化视图,它 returns 一些视图,并且不能将它投射到 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 似乎没有更新。有什么线索吗?
SwiftUI 方法是在 inside 视图中更改视图状态,据我所知,您将如何处理 WalletView
它可以像在以下(沙哑):
struct WalletView: View {
...
var body: some View {
_some_internal_view
.onAppear { self.isPresented = true }
.onDisappear { self.isPresented = false }
}
}
我已经通过将变量 isPresented 更改为 @Binding 解决了这个问题,修改它然后触发对子类的更新。