问题描述
比较以下两个代码片段的行为;目标 iOS 14.4 iPad(第 4 代)模拟器,Xcode 版本 12.4 (12D4e):
首先:
struct experimental: View {
@State private var selection: Int? = 0
var body: some View {
NavigationView {
vstack {
ForEach(0 ..< 5) { item in
NavigationLink(
destination: Text("item \(item)"),tag: item,selection: $selection) {
Text("item \(item)")
}
}
}
Text("Hello,World!")
}
}
}
第二:
struct experimental: View {
@State private var selection: Int? = 0
var body: some View {
NavigationView {
List(0 ..< 5) { item in
NavigationLink(
destination: Text("item \(item)"),selection: $selection) {
Text("item \(item)")
}
}
Text("Hello,World!")
}
}
}
第一个示例在模拟器中按预期运行,应用程序开始显示默认选择(项目 0)。但是,应用程序启动的第二个示例显示“Hello,World!”文本。当点击左上角的后退按钮时,它将返回默认选择(项目 0)然后菜单。当我们添加另一个 Text("Hello,World!") 视图以使其三列导航,中间和最后一列初始化为“Hello,World!”时,发生了同样的意外行为。文本,但当点击顶部的后退按钮时,中间列更改为默认选择(项目 0)。当 List 视图用于将 NavigationLink 包装在 NavigationView 中时,它的行为会有所不同。
更新: iPad DoubleColumnNavigationViewStyle() 和新的三列 NavigationView 上出现问题。适用于 StackNavigationViewStyle
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)