Search code examples
navigationswiftui

SwiftUI NavigationLink pop


I have navigated to a new view with NavigationLink and I want to pop back to where I was programatically. Is it yet possible in swiftUI? I know for the modal presentation we could use the .isPresented environment value but how about navigation?


Solution

  • You can really simply create custom back button. Only two lines code 🔥

    @Environment(\.presentationMode) var presentationMode
    self.presentationMode.wrappedValue.dismiss()
    

    Example:

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