NavigationStack dla iOS 16 (stary NavigationView)

Apr 26 2023
Jeśli Twoja aplikacja ma minimalny docelowy system iOS 16, iPadOS 16, macOS 13, tvOS 16 lub watchOS 9 lub nowszy, zrezygnuj z używania NavigationView. Zamiast tego użyj instancji NavigationStack i NavigationSplitView.

Jeśli Twoja aplikacja ma minimalny docelowy system iOS 16, iPadOS 16, macOS 13, tvOS 16 lub watchOS 9 lub nowszy, zrezygnuj z używania platformy NavigationView. Na swoim miejscu, użycie NavigationStacki NavigationSplitViewinstancje.

Podczas przewijania w dół ScrollView pasek stanu nakłada się na zawartość.

Aby zapobiec nakładaniu się zawartości i paska stanu, muszę dodać nawigację na górze. Po aktualizacji w 2022 r. NavigationView przechodzi na NavigationStack i NavigationSplitView.

Prostym sposobem na dodanie paska nawigacyjnego za pomocą NavigationStack jest:

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

Ale problem, jaki miałem, polegał na tym, że nie chcę żadnego tytułu nawigacji.

Wygląda na to, że działał dobrze bez żadnego tytułu dla poprzedniego widoku NavigationView z przykładowego samouczka poniżej.

Ponadto NavigationStack nie działał, dodając go do ContentView.

Sprawdziłem, czy jest to w końcu pokazane po tym, jak napisałem to również w aplikacji.

import SwiftUI

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