一尘不染

iOS SwiftUI:以编程方式弹出或关闭视图

swift

我找不到有关使用SwiftUI 以* 编程 方式 弹出关闭 所显示视图的任何方式的任何参考。 *

在我看来,唯一的方法是对模式使用已经集成的幻灯片dow操作(以及是否/如何禁用此功能?),以及对导航堆栈使用后退按钮。

有人知道解决方案吗?您知道这是一个错误还是会一直保持这种状态?


阅读 527

收藏
2020-07-07

共1个答案

一尘不染

本示例使用Beta
5版本说明中记录的新环境var,该环境使用了value属性。在更高的Beta中对其进行了更改,以使用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()
        }
    }
}
2020-07-07