Swiftui 登录后的快捷界面导航
我准备了两个视图,分别是签名视图和主视图。在用户登录到主视图后,我尝试弹出/隐藏签名视图 现在的问题是该视图允许用户单击“上一步”按钮返回登录视图。我不知道怎么解决这个问题。谁能给我一些提示吗 这是我的登录导航码:Swiftui 登录后的快捷界面导航,swiftui,swiftui-navigationlink,Swiftui,Swiftui Navigationlink,我准备了两个视图,分别是签名视图和主视图。在用户登录到主视图后,我尝试弹出/隐藏签名视图 现在的问题是该视图允许用户单击“上一步”按钮返回登录视图。我不知道怎么解决这个问题。谁能给我一些提示吗 这是我的登录导航码: NavigationLink(destination: HomePageView(), tag: 1, selection: $selection) { Button(action: { print("Register tapped")
NavigationLink(destination: HomePageView(), tag: 1, selection: $selection) {
Button(action: {
print("Register tapped")
self.verify()
self.selection = 1
}) {
HStack {
Text("OK").foregroundColor(Color.white).bold().foregroundColor(.white)
.frame(width: UIScreen.main.bounds.width - 30, height: UIScreen.main.bounds.height / 12)
.background(Color.orange)
.cornerRadius(35.0)
.font(.headline)
.padding()
}
}
}
你似乎需要一个完整的屏幕而不是另一个视图。通过这种方式,您将能够仅根据自己的要求轻松地呈现和消除视图。 要获得比我在这里解释的更完整的信息,请查看Paul Hudson在其网站上的解释:
每个导航堆栈应该只有一个
导航视图。您需要删除除顶部导航视图之外的所有嵌套导航视图。在子视图中,您仍然可以修改顶部视图
下面是一个简单的演示:
struct LoginView: View {
@State private var active: Bool = false
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: HomeView(), isActive: self.$active) {
Text("Register")
}
}
.navigationBarTitle("Login View")
}
}
}
struct HomeView: View {
var body: some View {
Text("inside home view")
.navigationBarTitle("Home view")
.navigationBarBackButtonHidden(true)
}
}
在Xcode 11.6和iOS 13.6中测试。为什么不隐藏后退按钮?这里有很多这样做的例子。对不起,我可以知道这样做是正确的吗?你可以做任何公众允许的事情API@Asperi我试图隐藏后退按钮,但导航栏仍然在那里。我的主视图得到了另一个导航视图。因为有两个导航视图。@pawello2222,但在我的主视图中,它包含包含导航视图的选项卡栏。那么她现在做什么呢。这意味着我得到了两个独立的代码寄存器部分和一个家庭。