Ara*_*ash 10 navigation swiftui
我已经导航到一个新视图,NavigationLink我想以编程方式返回到我所在的位置。在 swiftUI 中还有可能吗?我知道对于模态演示,我们可以使用.isPresented环境值,但是导航呢?
小智 12
是的,您现在可以使用以下代码以编程方式弹出 NavigationLink 视图:
import SwiftUI
struct MainViewer : View{
@State var showView = false
var body : some View {
NavigationLink(destination:DestView(showView: self.$showView),isActive : self.$showView){
Text("Push View")
}
}
}
struct DestView : View{
@Binding var showView : Bool
var body : some View {
Button(action:{self.showView = false}){
Text("Pop Screen")
}
}
}
Run Code Online (Sandbox Code Playgroud)
Sap*_*day 12
您真的可以简单地创建自定义后退按钮。只有两行代码
@Environment(\.presentationMode) var presentationMode
self.presentationMode.wrappedValue.dismiss()
Run Code Online (Sandbox Code Playgroud)
例子:
import SwiftUI
struct FirstView: View {
@State var showSecondView = false
var body: some View {
NavigationLink(destination: SecondView(),isActive : self.$showSecondView){
Text("Push to Second View")
}
}
}
struct SecondView : View{
@Environment(\.presentationMode) var presentationMode
var body : some View {
Button(action:{ self.presentationMode.wrappedValue.dismiss() }){
Text("Go Back")
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您使用:
\n@Environment(\\.dismiss) var dismiss\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\xa6 在你的目的地视图中,然后你可以调用:
\ndismiss()\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\xa6 您想要在该视图中的位置。
\n例子:
\nimport SwiftUI\n\nstruct MainView: View {\n\nvar body: some View {\n NavigationLink(destination: SecondView()){\n Text("Push to Destination View")\n }\n }\n}\n\n\nstruct DestinationView : View{\n @Environment(\\.dismiss)\n\n var body : some View { \n Button(action:{ self.dismiss() }){\n Text("Go Back") \n } \n }\n }\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
6452 次 |
| 最近记录: |