Есть ли способ добавить дополнительную функцию в NavigationLink? SwiftUI - PullRequest
2 голосов
/ 05 марта 2020

Я хотел бы добавить дополнительную функцию в NavigationLink.

пример кода выглядит примерно так:

struct ContentView: View {

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

var body: some View {

NavigationView {
NavigationLink(destination: level1()) {

     Text("Next")      
}}}}

Я знаю, что это не работает, но возможно ли сделать что-то подобное? (Он будет go к месту назначения и вызовет функцию одновременно)

NavigationLink(destination: level1(), yes()) {Text("Next")}   

Я попытался вставить кнопку в NavigationLink, но она тоже не сработала. Когда я делаю это, только функция в кнопке работает, NavigationLink не работает.

NavigationLink(destination: level1())   {
        Button(action: { self.yes() }) 
        { Text("Button")}
        }

1 Ответ

5 голосов
/ 05 марта 2020

Используйте onAppear (выполнить:) . Это будет выполнять некоторые функции при появлении 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")
    }
}

...