swift - SwiftUI - TabView 中的 OnExitCommand
问题描述
我最近一直在尝试制作一个 tvOS 应用程序,但遇到了以下相当烦人的问题。我不能在 TabView 中使用导航,并且仍然有删除菜单按钮带我回到以前的状态。
struct TestView: View {
@State var selection : Int = 0
var body: some View {
TabView(selection: self.$selection) {
ExpView()
.tabItem {
HStack {
Image(systemName: "magnifyingglass")
Text("Explore")
}
}
.tag(0)
}
}
}
struct ExpView: View {
var body: some View {
NavigationView {
NavigationLink(destination: DetailView(title: "Hey")) {
Text("Detail")
}
}
}
}
struct DetailView: View {
var title : String
var body: some View {
VStack {
Text(title)
}
}
}
我的问题是:有没有办法让菜单按钮回到层次结构中的上一个视图而不完全关闭应用程序?
解决方案
您不需要在 Menu 上调用dismiss,它会为 NavigationLink 自动调用(因此再调用一次dismiss退出到主菜单)
这里是固定视图。使用 Xcode 11.4 测试
struct ExploreView: View {
var body: some View {
NavigationView {
NavigationLink(destination: DetailView(title: "Hey")) {
Text("Detail")
}
}
}
}
struct DetailView: View {
var title : String
var body: some View {
VStack {
Text(title)
}
}
}
推荐阅读
- puppet - 如何使用 Augeas 和 Puppet 将导出语句添加到 bash_profile
- javascript - API的POST方法:如何传递数组?
- c# - 使用参数调用 C# CA 时无法调用 command.exe(SQL Server Setup.exe)
- java - JShell Edit Pad 不执行/运行代码片段
- regex - 正则表达式:之后带有文本的负前瞻
- scheme - 球拍:矢量上的滑动窗口
- javascript - 通过 JavaScript 解析 textarea 并显示平均值
- perl - 如何在循环中访问嵌套的数组哈希?
- python - 如何将所有参数值的函数映射为列表?但在函数定义中有明确的参数名称
- python - python中多边形绘制的亚像素精度?