【发布时间】:2020-09-03 10:28:59
【问题描述】:
我目前正在使用 SwiftUI 开发应用程序。
这个应用有 3 个结构
- ①内容视图
- ②第一视图
- ③二视图
这 3 个结构在 Tab View 中进行页面转换。
而且这个应用程序有一个使用 ObservableObject 注解的 Bool 通用变量类型。
我想在 FirstView 和 SecondView 中更改为出现和消失的 Text View 取决于变量的条件,但 FirstView 并没有像我预期的那样更改视图...
我该如何解决这种情况?
代码如下:
ContentView.swift
import SwiftUI
struct ContentView: View {
var body: some View {
TabView {
FirstView()
.tabItem {
Text("First")
}.tag(1)
SecondView()
.tabItem {
Text("Second")
}.tag(2)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
FirstView.swift
import SwiftUI
struct FirstView: View {
@ObservedObject var firstCheck: ViewModel = ViewModel()
var body: some View {
VStack{
if firstCheck.check == true{
Text("checked")
}
}
}
}
struct FirstView_Previews: PreviewProvider {
static var previews: some View {
FirstView()
}
}
SecondView.swift
import SwiftUI
struct SecondView: View {
@ObservedObject var secondCheck = ViewModel()
var body: some View {
VStack{
Toggle(
isOn: $secondCheck.check
){
Text("change")
}
if self.secondCheck.check == true{
Text("checked")
}
}
}
}
struct SecondView_Previews: PreviewProvider {
static var previews: some View {
SecondView()
}
}
ViewModel.swift
import Foundation
final class ViewModel: ObservableObject {
@Published var check: Bool = false
}
Xcode:版本 11.7
【问题讨论】:
标签: swiftui