有没有办法给 NavigationLink 添加额外的功能?用户界面

I K*_*aya 7 navigation function swiftui navigationlink

我想为 NavigationLink 添加一个额外的功能。

示例代码是这样的:

struct ContentView: View {

func yes () {
print("yes")
}

var body: some View {

NavigationView {
NavigationLink(destination: level1()) {

     Text("Next")      
}}}}
Run Code Online (Sandbox Code Playgroud)

我知道这行不通,但是有可能做这样的事情吗?(它会去目的地并同时调用该函数)

NavigationLink(destination: level1(), yes()) {Text("Next")}   
Run Code Online (Sandbox Code Playgroud)

我尝试在 NavigationLink 中放置一个按钮,但它也不起作用。当我这样做时,只有按钮中的功能起作用,而 NavigationLink 不起作用。

NavigationLink(destination: level1())   {
        Button(action: { self.yes() }) 
        { Text("Button")}
        }
Run Code Online (Sandbox Code Playgroud)

Ale*_*pov 17

使用onAppear(perform:)。这将在 aView出现时执行一些功能。

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")
    }
}

Run Code Online (Sandbox Code Playgroud)