在通过 NavigationLink 导航到其他视图之前,我该怎么做?
How could I do something before navigate to other view by NavigationLink?
让我展示一下简单的源代码:
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 之前,我想做一些事情,例如:保存一些数据,或者更改一些变量...
我该怎么做?
这可能是一个简单的问题,但我真的不知道。
感谢您的帮助!
您可以使用以下方法处理生命周期中的方法:
.onAppear {
print("ContentView appeared!")
}
并且:
.onDisappear {
print("ContentView disappeared!")
}
因此,您可以使用 .onDisappear
执行您需要的任何操作
我有一个简单的方法来解决这个问题:
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")
}
}
}
}
让我展示一下简单的源代码:
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 之前,我想做一些事情,例如:保存一些数据,或者更改一些变量...
我该怎么做?
这可能是一个简单的问题,但我真的不知道。
感谢您的帮助!
您可以使用以下方法处理生命周期中的方法:
.onAppear {
print("ContentView appeared!")
}
并且:
.onDisappear {
print("ContentView disappeared!")
}
因此,您可以使用 .onDisappear
执行您需要的任何操作
我有一个简单的方法来解决这个问题:
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")
}
}
}
}