xan*_*uck 17 swiftui swiftui-navigationlink swiftui-navigationview ios16 xcode14
自从安装 Xcode 14 以来,我现在在控制台中打印以下错误消息:
呈现值的 NavigationLink 必须出现在基于 NavigationContent 的 NavigationView 内。链接将被禁用。
我的应用程序的结构如下:
我将视图 A 包裹在导航视图中。导航视图内部有一个链接到视图 B 的导航链接。
我的视图 B 没有导航视图,但有一个指向视图 C 的导航链接。视图 B 继承了视图 A 中定义的导航视图
当我按下视图 B 上的后退按钮,弹出回视图 A 时,会打印警告。当我将视图 B 包装在导航视图中时,警告消失,但这当然现在在两个导航视图中显示视图 B,这不是什么我想。
我不确定为什么会打印此警告,因为视图 B 继承了视图 A 中定义的 NavigationView。
小智 16
我遇到过同样的问题。添加对 iOS16 的检查并使用新的导航堆栈(如果为 true)为我解决了这个问题。
WindowGroup {
if #available(iOS 16.0, *) {
NavigationStack {
ContentView()
}
} else {
// Fallback on earlier versions
NavigationView {
ContentView()
}
}
}
Run Code Online (Sandbox Code Playgroud)
尝试添加.navigationViewStyle(.stack)到NavigationView. 这对我的情况有帮助。
NavigationView {
// View A
}
.navigationViewStyle(.stack)
Run Code Online (Sandbox Code Playgroud)
在ios16中将被弃用,这里提供了官方文档链接,可以查看具体详情
已弃用
请改用 NavigationStack 和 NavigationSplitView。有关更多信息,请参阅迁移到新的导航类型。
https://developer.apple.com/documentation/swiftui/navigationview
| 归档时间: |
|
| 查看次数: |
10163 次 |
| 最近记录: |