弃用NavigationView
iOS 16, iPadOS 16, macOS 13 之后,Apple优化了导航行为,将NavigationView细分为 NavigationStack 和 NavigationSplitView。
如果是开发单列的页面(通常的iPhone App)则使用NavigationStack,其用法和NavigationView一样。
如果是开发有侧边栏的页面(通常的macos App)则使用NavigationSplitView。
替换为NavigationStack
弃用的写法
NavigationView { // This is deprecated.
/* content */
}
.navigationViewStyle(.stack)
现在应该写为
NavigationStack {
/* content */
}
替换为NavigationSplitView
弃用的写法
NavigationView { // This is deprecated.
/* column 1 */
/* column 2 */
}
现在应该写为
NavigationSplitView {
/* column 1 */
} detail: {
/* column 2 */
}
或
NavigationSplitView {
/* column 1 */
} content: {
/* column 2 */
} detail: {
/* column 3 */
}
参考资料:https://developer.apple.com/documentation/swiftui/migrating-to-new-navigation-types#Overview