SwiftUI navigationView возвращает только со второго экрана, а не со следующих - PullRequest
0 голосов
/ 22 апреля 2020

У меня проблема с SwiftUI. В основном это мой график просмотра:

View1 -> View2 -> View3 -> et c.

Теперь я хочу показать кнопку возврата в View2, но когда пользователь получает возможность просмотра 3, это не должно быть видно. Я пытался скрыть и удалить элементы, но все еще вижу кнопку «Назад» в следующих представлениях, которая возвращает меня к View1.

Ответы [ 3 ]

0 голосов
/ 22 апреля 2020

Поскольку я не смог сделать это простым и понятным способом, я создал пользовательскую кнопку с действием dismiss, в котором есть содержимое, и действие работает, если свойство true только isShowingButton имеет значение true, а затем при переходе к следующему представлению я переключаю его на ложный. Это работает, может быть, не самый лучший способ, но работает. Если кто-то знает лучший способ решить эту проблему, я был бы признателен

0 голосов
/ 22 апреля 2020

Не видя ваш код, довольно сложно сказать, где проблема.

Однако следующий код работает для меня

struct ContentView: View {

    var body: some View {
        NavigationView {
            FirstView()
        }
    }
}

struct FirstView: View {

    var body: some View {
        NavigationLink(destination: SecondView()
        ) {
            Text("Go to Second View")

        }
        .navigationBarTitle("FirstView", displayMode: .inline)

    }
}

struct SecondView: View {

    var body: some View {
        NavigationLink(destination: ThirdView().navigationBarBackButtonHidden(true)
        ) {
            Text("Go to Third View")
        }
        .navigationBarTitle("SecondView", displayMode: .inline)
    }
}

struct ThirdView: View {

    var body: some View {
            Text("Third View without Back Button")
        .navigationBarTitle("Third View", displayMode: .inline)
    }
}

Navigation without Back Button

0 голосов
/ 22 апреля 2020

При переходе к View 3 вам нужно добавить .navigationBarBackButtonHidden (true) к NagivationLink

struct ViewTwo: View {

var body: some View {
    NavigationLink(destination: SecondView().navigationBarBackButtonHidden(true)
    ) {
        Text("Go to View 3")

    }
    .navigationBarTitle("View 2", displayMode: .inline)

}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...