【发布时间】:2021-12-08 07:44:21
【问题描述】:
我在 watchOS 8.1RC 中发现了一个回归,其中 NavigationLink 从 TabView 触发。 它立即被驳回。
它在 watchOS 8.0 或模拟器 (watchOS 8.0) 中运行。 你知道解决方法吗? 谢谢
示例代码:
import SwiftUI
@main
struct TestNavigationApp: App {
var body: some Scene {
WindowGroup {
NavigationView {
ContentView()
}
}
}
}
struct ContentView: View {
var body: some View {
List {
NavigationLink(destination: ContentView1()) {
Text("To TabView")
}
}
}
}
struct ContentView1: View {
var body: some View {
TabView {
NavigationView {
NavigationLink(destination: ContentView2()) {
Text("To ContentView2")
}
}
VStack {
Text("Screen2")
}
}
}
}
struct ContentView2: View {
var body: some View {
Text("ContentView2")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
【问题讨论】:
-
如果没有Minimal Reproducible Example,就无法帮助您进行故障排除。代码中的
NavigationLink没有机会工作。 -
为什么?它在 watchOS 7 或 8 中运行良好……如果你能解释一下为什么 le 代码是错误的……
-
将确切的代码放入一个空白项目中,看看它是否重现了您的问题
-
在应用程序中见证相同的行为。在 8.0 的设备上很好,升级到 8.1 的设备每次都会从导航链接视图中弹出。 Apple 方面的 8.1 发生了一些变化,因为它一直工作到 7.3(当我们第一次为我们的应用实现 UI 时)。
-
问题仍然存在于 watchOS 8.3 beta1
标签: swiftui apple-watch swiftui-navigationlink swiftui-tabview watchos-8