NavigationStack pour iOS 16 (ancien NavigationView)

Apr 26 2023
Si votre application a une cible de déploiement minimale d'iOS 16, iPadOS 16, macOS 13, tvOS 16 ou watchOS 9, ou version ultérieure, abandonnez NavigationView. À la place, utilisez les instances NavigationStack et NavigationSplitView.

Si votre application a une cible de déploiement minimale d'iOS 16, iPadOS 16, macOS 13, tvOS 16 ou watchOS 9, ou version ultérieure, abandonnez l'utilisation de NavigationView. À sa place, son utilisation NavigationStacket NavigationSplitViewses instances.

Lorsque vous faites défiler ScrollView vers le bas, la barre d'état se chevauche avec le contenu.

Pour éviter le chevauchement du contenu et de la barre d'état, je dois ajouter la navigation en haut. Après la mise à jour 2022, NavigationView passe à NavigationStack et NavigationSplitView.

Un moyen simple de saumurer ces barres de navigation en utilisant NavigationStack est,

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()
        }
    }
}

Mais le problème que j'ai eu est, que se passe-t-il si je ne veux aucun titre de navigation.

Il semble que cela fonctionnait bien sans aucun titre pour le NavigationView précédent de l'exemple de didacticiel ci-dessous.

De plus, NavigationStack ne fonctionnait pas en l'ajoutant sur ContentView.

J'ai vérifié qu'il est enfin affiché après l'avoir écrit sur App également.

import SwiftUI

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