SwiftUI - SwiftUI 中有等效的 popViewController 吗?

标签 swift swiftui

我正在使用 SwiftUI,希望在点击按钮时能够返回到之前的 View ,就像我们在 UINavigationController 中使用 popViewController 一样。 到目前为止有提供的方法吗?

我也尝试过使用 NavigationDestinationLink 来执行此操作,但没有成功。

struct AView: View {
    var body: some View {
        NavigationView {
            NavigationButton(destination: BView()) {
                Text("Go to B")
            }
        }
    }
}

struct BView: View {
    var body: some View {
        Button(action: {
            // Trying to go back to the previous view
            // previously: navigationController.popViewController(animated: true)
        }) {
            Text("Come back to A")
        }
    }
}

最佳答案

按如下方式修改您的 BView 结构。该按钮的执行方式与 UIKit 中的 popViewController 相同。

struct BView: View {
    @Environment(\.presentationMode) var presentationMode
    
    var body: some View {
        Button("Come back to A") {
            presentationMode.wrappedValue.dismiss()
        }
    }
}

关于SwiftUI - SwiftUI 中有等效的 popViewController 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56552939/

相关文章:

swift - 如何在没有固定宽度的情况下将文本包装在 UILabel 中(通过 UIViewRepresentable)?

SwiftUI:如何在抚摸时使整个形状识别手势?

ios - 如何在 SwiftUI 中制作内阴影

swift - 如何在同一页 FSCalendar Swift 3 显示 2 个月

Swift 向请求添加参数

ios - 从 UIImagePickerController 获取 UIImage 的 URL

ios - 如何删除静态 UITableView 中只有一个部分的分隔符?

swiftui - 无法使用SwiftUI推断复杂的闭包返回类型

ios - SpriteView 不会在状态更改时暂停场景

swift - “Functions are a first-class type” swift ?