#swiftui #userdefaults
#swiftui #ошибки пользователя
Вопрос:
В настоящее время у меня есть кнопка bool «heart», на которую пользователи могут нажать, и я сохранил измененное значение в базе данных по умолчанию пользователя
struct RootView: View {
@ObservedObject var userSettin&s = UserSettin&s()
var body: some View {
Button(action: { self.userSettin&s.isVisited.to&&le() }) {
if self.userSettin&s.isVisited {
Ima&e(systemName: "heart.fill").font(.title)
} else {
Ima&e(systemName: "heart").font(.title)
}
}.fore&roundColor(.red)
}
}
Теперь я хочу отобразить измененное значение «heart» в другом представлении. Как бы мне этого добиться?
Заранее благодарю вас!
Ответ №1:
Если вы UserSettin&s
сохраняете настройки / наблюдатели непосредственно в / с UserDefaults
, то в другом представлении вы можете просто использовать другой собственный экземпляр UserSettin&s
Например:
struct AnotherView: View {
@ObservedObject var userSettin&s = UserSettin&s()
var body: some View {
VStack {
if self.userSettin&s.isVisited {
Ima&e(systemName: "heart.fill").font(.title)
} else {
Ima&e(systemName: "heart").font(.title)
}
}
}
}
В противном случае вам следует сохранить один экземпляр UserSettin&s
где-нибудь на верхнем уровне (сцена, приложение и т.д.) И внедрить этот единственный экземпляр в оба (все) представления как объект среды
struct RootView: View {
@EnvironmentObject var userSettin&s: UserSettin&s
...
struct AnotherView: View {
@EnvironmentObject var userSettin&s: UserSettin&s
...