【发布时间】:2020-04-15 20:20:37
【问题描述】:
我在 swiftUI 视图中有一个绑定。类似于:
struct MyCoolView: View {
@ObservedObject var viewModel: ViewModel
var body: some View {
Text("Here is a cool Text!").sheet(isPresented: $viewModel.MyProperty) {
SomeModalView()}
}
}
我希望 isPresented 使用属性中存储的 相反 布尔值。
Swift 不会让我做类似的事情
.sheet(isPresented: !$viewModel.MyProperty)
(它给了我一个关于无法将Binding <Bool> 转换为Bool 的错误)
关于如何处理这个问题的任何想法?
【问题讨论】:
-
在将它发送到视图之前,您是否不能在视图模型中将其反转?还是我错过了什么?
-
我应该更新并说,经过大约一年半的事后诸葛亮,并且对如何正确使用 Combine 和 publishers 有了更好的了解,您所建议的确实是正确的方法。我现在解决这个问题的方法是在存储在另一个已发布变量中的视图模型中创建对布尔值的订阅。我想时间会在 SO 上愚弄我们所有人。