在通过 NavigationLink 导航到其他视图之前,我该怎么做? [英] How could I do something before navigate to other view by NavigationLink?

查看:36
本文介绍了在通过 NavigationLink 导航到其他视图之前,我该怎么做?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

让我展示简单的源代码:

Let me show the simple source code:

struct ContentView : View {

    @State var isPresented = false
    var body: some View {        
            NavigationView {
                HStack{
                    NavigationLink(destination: MyDetailView(message: "Detail Page #2") ) {
                        Text("Go detail Page #2 >")
                    }
                    .navigationBarTitle("Index Page #1")
                }
            }

    }
}

在导航到 MyDetailView 之前,我想做一些事情,例如:保存一些数据,或更改一些变量...

Before navigate to MyDetailView, I want to do something, for example: save some data, or change some variable...

我怎么能这样做?

这可能是一个简单的问题,但我真的不知道.

It may be a simple question, but I really don't know.

感谢您的帮助!

推荐答案

我有一个简单的方法来解决这个问题:

I have got a simple method to resolve that:

struct ContentView : View {

    @State var isPresented = false
    var body: some View {        
            NavigationView {
                HStack{
                    NavigationLink(destination: MyDetailView(message: "Detail Page #2") ,isActive: $isPresented) {
                        Text("Go detail Page #2 >")
                            .onTapGesture
                             {
                                 //Do somethings here
                                 print("onTapGesture")
                                 //Navigate
                                 self.isPresented = true
                             }
                    }
                    .navigationBarTitle("Index Page #1")
                }
            }

    }
}

这篇关于在通过 NavigationLink 导航到其他视图之前,我该怎么做?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆