Я думаю, вы можете использовать isActive и прослушивать изменение привязки, я знаю, что привязка не имеет didSet
, но вы можете добавить его с этим расширением
extension Binding {
func didSet(execute: @escaping (Value) ->Void) -> Binding {
return Binding(
get: {
return self.wrappedValue
},
set: {
execute($0)
self.wrappedValue = $0
}
)
}
}
Затем вы можете добавить состояние для отслеживания состояния представления
struct ContentView: View {
@State isPresented: Bool = false
var body: some View {
NavigationView {
NavigationLink(Text("Follow to a Text"), destination: Text("detail view"), isPresented: $isPresented.didSet{ if !self.isPresented { print("Back Pressed") } })
}
}
В настоящее время мне неизвестен какой-либо другой способ сделать то, что вы хотите, без настраиваемой кнопки