【发布时间】:2021-01-15 08:29:28
【问题描述】:
我将 Xcode 12 用于 iOS 14.0 的部署。
- 我的主屏幕有一个 NavigationView
- 在 NavigationView 中有一个 TabView(有 4 个选项卡)
- 每个选项卡中都有包含按钮和导航链接的子视图
应用程序上的导航功能正常(当我单击其中一个子视图上的 NavigationLink 时,它会导航到正确的视图,当我单击后退按钮时,它会关闭视图。)但是,当我单击后退时按钮,控制台打印以下错误:
Trying to pop to a missing destination at /Library/Caches/com.apple.xbs/Sources/Monoceros/Monoceros-103/Shared/NavigationBridge_PhoneTV.swift:337
除了错误日志之外,该应用程序运行良好,所以我打算暂时忽略该错误......但我想知道这意味着什么?我的代码中没有任何名为“Monoceros”的内容。我猜它与 TabView 作为 NavigationView 的子视图有关?
编辑:
几个月后,这个问题仍然存在。这是可重现的代码。打开 ContentView(),在 FirstScreen() 上单击 NavigationLink,然后单击返回按钮。它会打印出 Monoceros 哈哈
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
TabView {
FirstScreen()
.tabItem {
Text("One")
Image(systemName: "house.fill")
}
Text("Second Screen")
.tabItem {
Text("Two")
Image(systemName: "heart.fill")
}
}
}
}
}
struct FirstScreen: View {
var body: some View {
NavigationLink("Click here", destination: Text("Final Screen"))
// Click the back button on FinalScreen prints:
//Trying to pop to a missing destination at /Library/Caches/com.apple.xbs/Sources/Monoceros_Sim/Monoceros-120/Shared/NavigationBridge_PhoneTV.swift:341
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
【问题讨论】:
-
你解决了吗?
-
不。我认为这是因为 TabView 是 NavigationView 的子视图。如果您改为将 NavigationView 添加为 TabView 中的子视图,错误就会消失。然而,这改变了用户界面并且对我们不起作用。我们最终只是忽略了错误并发布到 App Store。据我所知,该错误并未引起任何问题。
-
你能提供一个可重现的例子吗?
-
@pawello2222 已更新。谢谢
-
@nicksarno 你能解决抛出的错误信息吗?我遇到与您完全相同的用例完全相同的问题...我不介意错误但不想在提交应用程序时被苹果拒绝!?
标签: swift xcode swiftui navigationview swiftui-navigationlink