【发布时间】:2021-03-01 15:06:57
【问题描述】:
我有一个问题,在我注册一个新用户后,应用程序返回到主菜单(使用 NavigationLink),然后如果我选择菜单中的一个选项,在下一个视图中我有 2 个导航栏.
我正在 MainView 中使用 NavigationView。
struct ContentView: View {
var body: some View {
NavigationView {
MainView()
}
}
}
struct MainView: View {
var body: some View {
VStack {
NavigationLink(
destination: AuthView(),
label: {
Text("Sesion")
})
}
}
}
struct AuthView: View {
@State private var email: String = ""
@State private var password: String = ""
let lightGreyColor = Color(red: 239.0/255.0, green: 243.0/255.0, blue: 244.0/255.0, opacity: 1.0)
var body: some View {
VStack() {
NavigationLink(
destination: RegisterView(),
label: {
Text("Registrarse")
.font(.headline)
.foregroundColor(.white)
.padding()
.frame(width: 200, height: 60)
.background(Color.green)
.cornerRadius(15.0)
})
}
}
.padding()
.navigationBarTitle("Autenticacion")
.navigationBarTitleDisplayMode(.inline)
}
struct RegisterView: View {
@ObservedObject var registerController = RegisterController()
@State private var showingRegistrationAlert = false
@State var navigateNext = false
let lightGreyColor = Color(red: 239.0/255.0, green: 243.0/255.0, blue: 244.0/255.0, opacity: 1.0)
var body: some View {
VStack {
VStack(alignment: .leading) {
Spacer()
NavigationLink(destination: ContentView(), isActive:$navigateNext) {
Text("")
}
Button(action: { if registerController.validateRegistration() {
showingRegistrationAlert.toggle()
}}) {
Text("Enviar registro")
}
.alert(isPresented: $showingRegistrationAlert) {
Alert(title: Text("Se registro correctamente"), dismissButton: .default(Text("Ok"), action: {
navigateNext.toggle()
}))
}
.padding()
.navigationBarTitle(Text("Registracion"), displayMode: .inline)
}
}
我尽量减少代码,如果太多了,抱歉。
【问题讨论】:
-
这是很常见的问题,1000 次回答!你搜索过旧问题吗?
-
是的,但是我解决不了,你。