Проблема с панелью инструментов SwiftUI в iOS 15

Этот код, который отображает кнопку на панели инструментов для переключения свойства «закладки» объекта модели, работает как задумано в симуляторе iPhone под управлением iOS 16.0 :

      class Item: ObservableObject {
    @Published var bookmarked = false
}

struct ContentView: View {
    @StateObject var item = Item()

    var body: some View {
        NavigationView {
            Text(self.item.bookmarked.description)
                .toolbar {
                    MyToolbar(item: self.item)
                } //.toolbar
        } //NavigationView
    } //body
} //ContentView

struct MyToolbar: ToolbarContent {
    @ObservedObject var item: Item

    var body: some ToolbarContent {
        ToolbarItem {
            Button {
                self.item.bookmarked.toggle()
            } label: {
                Image(systemName: "bookmark")
                    .symbolVariant(self.item.bookmarked ? .fill : .none)
                    .foregroundColor(.yellow)
            } //Button
        } //ToolbarItem
    } //body
} //MyToolbar

Однако в симуляторе iOS 15.0 изображение закладки на панели инструментов не меняется между заполненным и пустым (хотя базовое значение модели переключается правильно).

Я неправильно использую модификатор .toolbar для кода iOS 15.0?

Изменить: Кстати, если я используюToolbarItem {...}код прямо вContentViewпод.toolbarмодификатор, тогда это работает. Но я хотел бы сохранить этот код во внешнемToolbarContentструктуру, если это возможно.

0 ответов

Другие вопросы по тегам