我找不到任何关于使用SwiftUI使我的演示视图达到popdismiss programmatically的方法的参考资料.

在我看来,唯一的方法是对模式使用已经集成的Slide Dow动作(如果我想禁用此功能怎么办?),并对导航堆栈使用后退按钮.

有人知道解决方案吗? 你知道这是个窃听器还是会一直这样?

推荐答案

此示例使用Beta5发行说明中记录的新环境变量,该环境变量使用Value属性.在后来的测试版中,它被更改为使用wrappedValue属性.此示例现在适用于GM版本.此完全相同的概念可用于消除与.sheet修改器一起显示的模态视图.

import SwiftUI

struct DetailView: View {
    @Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
    var body: some View {
        Button(
            "Here is Detail View. Tap to go back.",
            action: { self.presentationMode.wrappedValue.dismiss() }
        )
    }
}

struct RootView: View {
    var body: some View {
        VStack {
            NavigationLink(destination: DetailView())
            { Text("I am Root. Tap for Detail View.") }
        }
    }
}

struct ContentView: View {
    var body: some View {
        NavigationView {
            RootView()
        }
    }
}

Ios相关问答推荐

带外部笔划的圆形进度视图

使用AVCaptureEventInteraction捕获音量按键快门

objc[25442]:Swift类的扩展和类别不允许有+load方法

如何为 Firebase Auth 实施 Firebase AppCheck?

为什么常量属性可能在 Swift 类中被初始化两次?

如何使用 AppIntents 在 SwiftUI 应用程序中打开特定视图

SwiftUI withAnimation 在视图出现之前不会启动

如何包含 Xcode 子项目标头?

iOS 是否支持使用独立 .xib 文件创建的嵌套自定义子视图?

如何 comments .plist 文件中的行?

如何在通用应用程序中同时支持 iPad 和 iPhone 视网膜图形

iPhone iOS 无法正确显示 box-shadow

关闭所有打开的视图控制器的单个函数

UIView 和 initWithFrame 以及一个 NIB 文件.如何加载 NIB 文件?

使用 convertPoint 获取父 UIView 内的相对位置

在 iOS 7 上更改标签栏色调 colored颜色

Sierra 中的安全/协同设计: keys 串忽略访问控制设置和 UI 提示权限

IOS - 从 UITextView 中删除所有填充

如何删除 Swift 数组中的所有 nil 元素?

iPhone UITableView.如何开启音乐 App 之类的单字母字母列表?