Почему значки не могут измениться сразу? [закрыто] ⇐ IOS
-
Anonymous
Почему значки не могут измениться сразу? [закрыто]
Это три представления в моем проекте списка дел. Я хочу сохранить данные, чтобы список дел пользователей оставался там после запуска приложения. Но всякий раз, когда я нажимаю на значок «проверить.круг» или «круг», они не могут переключиться немедленно. Они переключятся после того, как я снова запущу приложение. Я не знаю, как немедленно переключить значок. Заранее спасибо!!!
@EnvironmentObject var listViewModel: ListViewModel @State var newText: String = "" @State var detents: PresentationDetent = .medium @State var showSheet: Bool = false static var item1 = ItemModel (title: «First», isCompleted: false) var body: some View { НавигацияВью { Список { ForEach(listViewModel.items) {элемент в ListRowView (элемент: элемент) .onTapGesture { listViewModel.updateItem(элемент: элемент). -> * } } .onDelete (выполнить: listViewModel.delete) .onMove (выполнить: listViewModel.moveItem) } .navigationTitle("Список дел") .navigationBarItems( ведущий: EditButton(), завершающий: Кнопка( действие: { showSheet.toggle() }, этикетка: { Текст("Добавить") }) .лист( isPresented: $showSheet, содержание: { Второй Экран() .presentationDetents([.height(500)]) } )) } } функция saveItems() { если let encodedData = попробовать? JSONEncoder().encode(элементы) { UserDefaults.standard.set(encodedData, forKey: itemsKey) } пусть идентификатор: строка пусть заголовок: Строка вар isCompleted: Bool init(id: String = UUID().uuidString, title: String, isCompleted: Bool) { self.id = идентификатор self.title = заголовок self.isCompleted = isCompleted } func updateCompletion() -> ItemModel {. -> * return ItemModel (id: id, title: title, isCompleted: !isCompleted) } После того, как я нажму на значок, я хочу, чтобы значок сразу же переключился.
Это три представления в моем проекте списка дел. Я хочу сохранить данные, чтобы список дел пользователей оставался там после запуска приложения. Но всякий раз, когда я нажимаю на значок «проверить.круг» или «круг», они не могут переключиться немедленно. Они переключятся после того, как я снова запущу приложение. Я не знаю, как немедленно переключить значок. Заранее спасибо!!!
@EnvironmentObject var listViewModel: ListViewModel @State var newText: String = "" @State var detents: PresentationDetent = .medium @State var showSheet: Bool = false static var item1 = ItemModel (title: «First», isCompleted: false) var body: some View { НавигацияВью { Список { ForEach(listViewModel.items) {элемент в ListRowView (элемент: элемент) .onTapGesture { listViewModel.updateItem(элемент: элемент). -> * } } .onDelete (выполнить: listViewModel.delete) .onMove (выполнить: listViewModel.moveItem) } .navigationTitle("Список дел") .navigationBarItems( ведущий: EditButton(), завершающий: Кнопка( действие: { showSheet.toggle() }, этикетка: { Текст("Добавить") }) .лист( isPresented: $showSheet, содержание: { Второй Экран() .presentationDetents([.height(500)]) } )) } } функция saveItems() { если let encodedData = попробовать? JSONEncoder().encode(элементы) { UserDefaults.standard.set(encodedData, forKey: itemsKey) } пусть идентификатор: строка пусть заголовок: Строка вар isCompleted: Bool init(id: String = UUID().uuidString, title: String, isCompleted: Bool) { self.id = идентификатор self.title = заголовок self.isCompleted = isCompleted } func updateCompletion() -> ItemModel {. -> * return ItemModel (id: id, title: title, isCompleted: !isCompleted) } После того, как я нажму на значок, я хочу, чтобы значок сразу же переключился.
Мобильная версия