Если вы отмените процесс возврата к предыдущему экрану, проведя пальцем, панель навигации останется без исчезновения. - PullRequest
1 голос
/ 28 марта 2020

При перелистывании из вида с помощью 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

Если бы этого не было, этого бы не произошло.

1 Ответ

1 голос
/ 28 марта 2020

Вот это исправление

struct DetailView: View {
    var body: some View {
        VStack {
            NavigationLink(destination: EditView()) {
                Text("Edit")         
            }.isDetailLink(false)                            // << here !!
        }
        .navigationBarTitle("Detail", displayMode: .inline)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...