При перелистывании из вида с помощью navigationBarItems, отмене прокрутки и возврата к предыдущему экрану панель навигации на предыдущем экране осталась без исчезновения.
Это ошибка?
Или есть моя реализация неверна?
Вы можете проверить явление здесь .
struct TopView: View {
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: DetailView()) {
Text("Detail")
}
}
.navigationBarTitle("Top")
}
}
}
struct DetailView: View {
var body: some View {
VStack {
NavigationLink(destination: EditView()) {
Text("Edit")
}
}
.navigationBarTitle("Detail", displayMode: .inline)
}
}
struct EditView: View {
@Environment(\.presentationMode) private var presentationMode: Binding<PresentationMode>
var body: some View {
VStack {
Text("Title")
}
.navigationBarTitle("Edit", displayMode: .inline)
.navigationBarItems(
trailing:
Button(action: {
self.presentationMode.wrappedValue.dismiss()
}) {
Text("Save")
}
)
}
}
@ Environment (. PresentationMode) private var presentationMode: Binding
Если бы этого не было, этого бы не произошло.