我想向NavigationLink添加一个附加功能。
示例代码如下:
struct ContentView: View {
func yes () {
print("yes")
}
var body: some View {
NavigationView {
NavigationLink(destination: level1()) {
Text("Next")
}}}}
我知道这行不通,但是有可能这样做吗? (它将转到目的地并同时调用该函数)
NavigationLink(destination: level1(), yes()) {Text("Next")}
我尝试在NavigationLink内放置一个按钮,但是它也不起作用。当我这样做时,仅按钮中的功能有效,NavigationLink不起作用。
NavigationLink(destination: level1()) {
Button(action: { self.yes() })
{ Text("Button")}
}
答案 0 :(得分:14)
使用onAppear(perform:)。这将在View
的显示上执行某些功能。
struct ContentView: View {
var body: some View {
NavigationView {
NavigationLink(destination: DetailView().onAppear {
self.someFunc()
}) {
Text("First Screen")
}
}
}
func someFunc() {
print("Click")
}
}
struct DetailView: View {
var body: some View {
Text("Second Screen")
}
}