gpt4 book ai didi

swift - TabView 在切换选项卡时重置导航堆栈

转载 作者:行者123 更新时间:2023-12-03 13:35:26 25 4
gpt4 key购买 nike

我有一个简单的 TabView:

TabView {
NavigationView {
VStack {
NavigationLink(destination: Text("Detail")) {
Text("Go to detail")
}
}
}
.tabItem { Text("First") }
.tag(0)
Text("Second View")
.tabItem { Text("Second") }
.tag(1)
}

当我转到选项卡 1 上的详细信息 View 时,切换到选项卡 2 然后切换回选项卡 1 我假设返回到详细信息 View (iOS 中随处可见的基本 UX)。相反,它会重置为选项卡 1 的根 View 。

由于 SwiftUI 不支持开箱即用,我该如何解决这个问题?

最佳答案

这是一个简单的示例,说明如何使用根目录下的项目列表保留导航堆栈的状态:

struct ContentView: View {

var body: some View {

TabView {

Text("First tab")
.tabItem { Image(systemName: "1.square.fill"); Text("First") }
.tag(0)

SecondTabView()
.tabItem { Image(systemName: "2.square.fill"); Text("Second") }
.tag(1)
}
}
}

struct SecondTabView: View {

private struct ListItem: Identifiable {
var id = UUID()
let title: String
}

private let items = (1...10).map { ListItem(title: "Item #\($0)") }

@State var selectedItemIndex: Int? = nil

var body: some View {

NavigationView {
List(self.items.indices) { index in
NavigationLink(destination: Text(self.items[index].title),
tag: index,
selection: self.$selectedItemIndex) {
Text(self.items[index].title)
}
}
.navigationBarTitle("Second tab", displayMode: .inline)
}
}
}

关于swift - TabView 在切换选项卡时重置导航堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57772137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com