我试图创建一个想要在导航到另一个视图之前要做的事情的按钮。但是,如果使用“按钮”,则无法导航到另一个视图,如果使用“ NavigationLink”,则除了导航之外什么也不能做。
我在下面添加按钮和导航链接。
我正在尝试使用此按钮进行Firebase身份验证,完成身份验证后,我想导航到另一个视图。
Button(action: {print("Hi")}) {
Text("Create Account")
.font(.system(size: 20))
.foregroundColor(Color("GreyLabel0"))
}
NavigationLink(destination: WelcomeView()) {
Text("Create Account")
.font(.system(size: 20))
.foregroundColor(Color("GreyLabel0"))
}
答案 0 :(得分:2)
您可以使用 DynamicNavigationDestinationLink 将新视图推送到NavigationView中。这样,您可以以编程方式进行操作,并有机会运行自己的代码。在这种情况下,请打印(“ hi”)。
struct ContentView: View {
var body: some View {
NavigationView {
TopView().navigationBarTitle(Text("Top View"))
}
}
}
struct TopView: View {
let detailView = DynamicNavigationDestinationLink(id: \String.self) { data in
DetailView(passedData: data)
}
var body: some View {
VStack {
Button(action: {
print("hi")
self.detailView.presentedData?.value = "Tapped!"
}, label: {
Text("Present Now!")
})
}
}
}
struct DetailView: View {
let passedData: String
var body: some View {
Text(passedData)
}
}