草庐IT

iOS SwiftUI : pop or dismiss view programmatically

coder 2023-07-16 原文

我找不到任何关于使用 SwiftUI 以编程方式弹出关闭我呈现的 View 的方法的引用。

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

有人知道解决办法吗? 您知道这是错误还是会一直这样?

最佳答案

此示例使用 Beta 5 发行说明中记录的新环境变量,该变量使用值属性。它在后来的测试版中更改为使用 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 SwiftUI : pop or dismiss view programmatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56513568/

有关iOS SwiftUI : pop or dismiss view programmatically的更多相关文章

随机推荐