Проблема с панелью инструментов 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
структуру, если это возможно.