棄用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