SwiftUI - TabView 内的 OnExitCommand

标签 swift xcode swiftui tvos

我最近一直在尝试制作一个 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)
        }
    }
}

我的问题是:有什么方法可以使菜单按钮返回到层次结构中的上一个 View 而不完全关闭应用程序?

最佳答案

您不需要在菜单上调用解雇,它会自动为 NavigationLink 调用(因此再调用一次解雇将退出主菜单)

这里是固定 View 。使用 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)
        }
    }
}

关于SwiftUI - TabView 内的 OnExitCommand,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62492402/

相关文章:

ios - 通过字符串名称调用对象,其中字符串是动态生成的

swiftui - 如何在 SwiftUI 中添加 .fontWeight 作为 ViewModifer 的一部分

swift - 无法更改 SCNCone 的颜色 - Scenekit

ios - 如何在 SwiftUI 中访问安全区域大小?

iphone - SDK错误编译错误

xcode - 如何将UIKit添加到Xcode项目?

swift - 我可以在两个单独的 View Controller 上获得相同的 firebase 数据吗?

ios - UITableView 上方的自定义 UIView(当用户拉动刷新时)

macos - 如何在 SwiftUI 中自动扩展 NSTextView 的高度?

ios - swiftui 表单未出现在列表中