我的应用程序有付费功能。我有一个用户可以切换的切换。如果用户没有支付,那么当用户尝试切换切换时,应该会出现一个工作表(并且切换不应该被激活)。如果用户已经支付,那么切换可以切换开和关,没有问题。
我不明白一个简单的结构体(PaidFeature
)如何访问一个可观察对象(Model
)。我如何在SwiftUI中编写它?
class Model: ObservableObject {
@Published var hasUserPaid: Bool = false
}
struct PaidFeature {
var isEnabled = false
}
struct ContentView: View {
@State private var feature = PaidFeature()
@EnvironmentObject var model: Model
var body: some View {
Toggle(isOn: self.$feature.isEnabled) {
Text("Hello, World!")
}
}
}
4条答案
按热度按时间j5fpnvbx1#
使用Xcode 12,您可以使用
.onChange
修饰符监听切换按钮的更改,每当用户切换按钮时,您可以将其切换回上一个状态,如果用户不是高级用户,则显示purchase this
表单。x0fgdtte2#
您可以将
disabled
修改器添加到Toggle
。ifmq2ha23#
我想应该是
**更新:**带显示表的替代变体演示。在Xcode 12 / iOS 14下测试
为简单起见,所有演示的所有状态都保留在视图中
niwlg2el4#
You can use condition in body查看