NavigationStack für iOS 16 (alte NavigationView)

Apr 26 2023
Wenn Ihre App ein Mindestbereitstellungsziel von iOS 16, iPadOS 16, macOS 13, tvOS 16 oder watchOS 9 oder höher hat, verzichten Sie auf die Verwendung von NavigationView. Verwenden Sie stattdessen die Instanzen NavigationStack und NavigationSplitView.

Wenn Ihre App ein Mindestbereitstellungsziel von iOS 16, iPadOS 16, macOS 13, tvOS 16 oder watchOS 9 oder höher hat, verzichten Sie auf die Verwendung von NavigationView. An seiner Stelle Verwendung NavigationStackund NavigationSplitViewInstanzen.

Wenn Sie in ScrollView nach unten scrollen, überlappt sich die Statusleiste mit dem Inhalt.

Um zu verhindern, dass sich Inhalt und Statusleiste überschneiden, muss ich oben eine Navigation hinzufügen. Nach dem Update 2022 wird NavigationView auf NavigationStack und NavigationSplitView umgestellt.

Eine einfache Möglichkeit, diese Navigationsleiste mit NavigationStack zu verbinden, ist:

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

Aber das Problem, das ich hatte, ist, was ist, wenn ich keinen Navigationstitel möchte?

Es scheint, als hätte es ohne Titel für die vorherige NavigationView aus dem Tutorial-Beispiel unten gut funktioniert.

Außerdem funktionierte NavigationStack nicht, indem es in ContentView hinzugefügt wurde.

Ich habe überprüft, ob es endlich angezeigt wird, nachdem ich es auch bei App geschrieben habe.

import SwiftUI

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