Как я могу отправить представление из ToolbarItem?

#swift #swiftui #toolbaritems

#swift #swiftui #элементы панели инструментов

Вопрос:

 ToolbarItem(placement: .bottomBar) {
    NavigationLink(
        destination: NoteView(note: Note())
    ) {
        Image(systemName: "square.and.pencil")
    }
}
  

Этот код работает не так, как ожидалось: при нажатии на изображение никаких действий не выполняется.

Есть идеи, почему или как обойти?

Ответ №1:

Возможный обходной путь — переместить NavigationLink внешний элемент toolbar и активировать с isActive помощью параметра:

 struct ContentView: View {
    @State var linkActive = false

    var body: some View {
        NavigationView {
            Text("Test")
                .background(
                    NavigationLink(destination: Text("Destination"), isActive: $linkActive) {}
                )
                .toolbar {
                    ToolbarItem(placement: .bottomBar) {
                        Button(action: {
                            linkActive = true
                        }) {
                            Image(systemName: "square.and.pencil")
                        }
                    }
                }
        }
    }
}