NavigationStack para iOS 16 (antiguo NavigationView)

Apr 26 2023
Si su aplicación tiene un objetivo de implementación mínimo de iOS 16, iPadOS 16, macOS 13, tvOS 16 o watchOS 9, o posterior, deje de usar NavigationView. En su lugar, use instancias de NavigationStack y NavigationSplitView.

Si su aplicación tiene un objetivo de implementación mínimo de iOS 16, iPadOS 16, macOS 13, tvOS 16 o watchOS 9, o posterior, deje de usar NavigationView. En su lugar, uso NavigationStacke NavigationSplitViewinstancias.

Cuando se desplaza hacia abajo en ScrollView, la barra de estado se superpone con el contenido.

Para evitar la superposición de los contenidos y la barra de estado, necesito agregar la navegación en la parte superior. Después de la actualización de 2022, NavigationView está en transición a NavigationStack y NavigationSplitView.

La forma simple de traer esas barras de navegación usando NavigationStack es,

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

Pero el problema que tuve es qué pasa si no quiero ningún título de navegación.

Parece que funcionaba bien sin ningún título para el NavigationView anterior del ejemplo del tutorial a continuación.

Además, NavigationStack no funcionaba al agregarlo en ContentView.

Verifiqué que finalmente se muestra después de que también lo escribí en la aplicación.

import SwiftUI

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