// в ContentView.swift:
struct ContentView: View {
@EnvironmentObject var app_state_instance : AppState //this is set to a default of false.
var body: some View {
if self.app_state_instance.complete == true {
Image("AppIcon")
}}
public class AppState : ObservableObject {
@Published var inProgress: Bool = false
@Published var complete : Bool = false
public static var app_state_instance: AppState? //I init this instance in SceneDelegate & reference it throughout the app via AppState.app_state_instance
...
}
в AnotherFile.swift:
AppState.app_state_instance?.complete = true
в SceneDelegate.swift:
app_state_instance = AppState( UserDefaults.standard.string(forKey: "username"), UserDefaults.standard.string(forKey: "password") )
AppState.app_state_instance = app_state_instance
window.rootViewController = UIHostingController(rootView: contentView.environmentObject(app_state_instance!))
Это ^ делает Я не знаю, почему?
Кроме того, можно ли сделать публикацию c var @ опубликованной?
Кроме того, я немного новичок в классе на основе + структура-как-значения парадигма, если у вас есть какие-либо советы по улучшению этого, пожалуйста, поделитесь.
Я рассмотрел вопрос об использовании структурной ссылки 'inout' ContentView для обновления структурного состояния из других файлов (так как выполнение app_state_instance не работает с этим кодом).