【发布时间】:2019-08-14 04:49:48
【问题描述】:
我想有条件地在我的应用程序中显示不同的视图 - 如果某个布尔值为真,则将显示一个视图。如果为 false,将显示不同的视图。此布尔值在 ObservableObject 类中,并且从将要显示的视图之一更改。
PracticeStatus.swift(父视图)
import Foundation
import SwiftUI
import Combine
class PracticeStatus: ObservableObject {
@Published var showResults:Bool = false
}
PracticeView.swift(父视图)
struct PracticeView: View {
@EnvironmentObject var practiceStatus: PracticeStatus
var body: some View {
VStack {
if practiceStatus.showResults {
ResultView()
} else {
QuestionView().environmentObject(PracticeStatus())
}
}
}
}
QuestionView.swift
struct QuestionView: View {
@EnvironmentObject var practiceStatus: PracticeStatus
var body: some View {
VStack {
...
Button(action: {
self.practiceStatus.showResults = true
}) { ... }
...
}
}
}
但是,此代码不起作用。按下QuestionView 内的按钮时,不显示ResultView。有人有解决方案吗?谢谢!
【问题讨论】:
标签: swift class struct observable swiftui