假设我在SwiftUI中创建了3个屏幕,其中包含指向下一个屏幕的NavigationLink。例如,第一个屏幕导航到第二个屏幕。第二个屏幕导航到第三个屏幕。第三个屏幕导航到第一个屏幕。在这种情况下,即使我只使用了一次NavigationView(在第一个屏幕中)。当我从第三个屏幕导航到第一个屏幕时,我遇到了一个后退按钮。从那时起,当我开始导航时,它一直在增加。我曾尝试使用.navigationBarBackButtonHidden(true)
。它隐藏了它,但后退按钮占用的空间仍然存在。我的代码类似于以下代码:
struct FirstScreen: View {
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: SecondScreen()) {
Text("Go to Second Screen")
}
}
}
}
}
struct SecondScreen: View {
var body: some View {
VStack {
NavigationLink(destination: ThirdScreen()) {
Text("Go to Third Screen")
}
}
}
}
struct ThirdScreen: View {
var body: some View {
VStack {
NavigationLink(destination: FirstScreen()) {
Text("Go to First Screen")
}
}
}
}
1条答案
按热度按时间06odsfpq1#
您正在将
FirstScreen
推送到导航堆栈中,但是FirstScreen
包含它自己的NavigationView
。如果您真的想继续将它们推送到堆栈中,请将NavigationView
移到FirstScreen
之外。如果你真的想把所有的视图从栈中弹出并返回到
FirstScreen
,你应该使用下面是一个简单的示例,将
path
向下传递到堆栈,并将其重置为弹出回根...