Swiftui - Изменения модели в основном представлении. Увольняет навигационный стекIOS

Программируем под IOS
Ответить
Anonymous
 Swiftui - Изменения модели в основном представлении. Увольняет навигационный стек

Сообщение Anonymous »

У меня есть основное представление, которое инициализирует ViewModel, которая каждые 30 секунд обновляет список элементов. Модель (для того, чтобы иметь одинаковую ссылку на элементы во всем приложении) передается как @environmentalobject. < /P>
Однако, когда я нахожусь в Mainview-> listview-> descriptionView, и пользователь, например, пытается войти в систему, что влияет на список элементов, и Insecence. Взгляд на то, что приводит креду, которые приводят в описание, чтобы отклонить.import SwiftUI

class ItemViewModel: ObservableObject {
@Published var items: [Item]
var timer: Timer?

func polling() {
refreshItemList()
}

init() {
self.timer = Timer.scheduledTimer(timeInterval: 30, target: self, selector: #selector(polling), userInfo: nil, repeats: true)
}
}

struct MainView {
@StateObject var model: ItemViewModel
@Environment(\.presentationMode) var presentationMode: Binding

var body: View {
ListOfItemsView().environmentObject(model)
}
}

struct ListOfItemsView {
@EnvironmentObject var model: ItemViewModel
@Environment(\.presentationMode) var presentationMode: Binding
var body: View {
List(items) { item in
NavigationLink(destination:
ItemDescriptionView(item).environmentObject(model)
) {
Text(item.title)
}
}
}
}

struct ItemDescriptionView {
let item: Item
@Environment(\.presentationMode) var presentationMode: Binding
func logIn() {
//Results into changes on the ItemViewModel and item list
}
}


Подробнее здесь: https://stackoverflow.com/questions/759 ... tion-stack
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»