NavigationStack для iOS 16 (старый NavigationView)

Apr 26 2023
Если ваше приложение имеет минимальную цель развертывания iOS 16, iPadOS 16, macOS 13, tvOS 16 или watchOS 9 или более поздней версии, откажитесь от использования NavigationView. Вместо этого используйте экземпляры NavigationStack и NavigationSplitView.

Если ваше приложение имеет минимальную цель развертывания iOS 16, iPadOS 16, macOS 13, tvOS 16 или watchOS 9 или более поздней версии, откажитесь от использования NavigationView. На его место используйте NavigationStackи NavigationSplitViewinstances.

Когда вы прокручиваете ScrollView вниз, строка состояния перекрывается содержимым.

Чтобы предотвратить перекрытие содержимого и строки состояния, мне нужно добавить навигацию сверху. После обновления 2022 года NavigationView переходит на NavigationStack и NavigationSplitView.

Простой способ добавить эту панель навигации с помощью NavigationStack:

import SwiftUI

struct ContentView: View {
    var body: some View {
        NavigationStack {
            ScrollView {
                Text("The area is...")
            }
        }
        .navigationTitle("Navigation")
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
//This is just for the preview
        NavigationStack { 
            ContentView()
        }
    }
}

Но у меня возникла проблема: что, если мне не нужно название навигации.

Похоже, он работал нормально без какого-либо заголовка для предыдущего NavigationView из приведенного ниже примера руководства.

Кроме того, NavigationStack не работал, добавляя его в ContentView.

Я проверил, что это, наконец, показано после того, как я написал это в приложении.

import SwiftUI

@main
struct TrekrApp: App {
    var body: some Scene {
        WindowGroup {
            NavigationStack {
                ContentView()
            }
        }
    }
}