NavigationStack cho iOS 16 (NavigationView cũ)

Apr 26 2023
Nếu ứng dụng của bạn có mục tiêu triển khai tối thiểu là iOS 16, iPadOS 16, macOS 13, tvOS 16 hoặc watchOS 9 trở lên, hãy chuyển đổi khỏi sử dụng NavigationView. Thay vào đó, hãy sử dụng các phiên bản NavigationStack và NavigationSplitView.

Nếu ứng dụng của bạn có mục tiêu triển khai tối thiểu là iOS 16, iPadOS 16, macOS 13, tvOS 16 hoặc watchOS 9 trở lên, hãy chuyển đổi khỏi sử dụng NavigationView. Ở vị trí của nó, sử dụng NavigationStackNavigationSplitViewtrường hợp.

Khi bạn cuộn xuống của ScrollView, thanh trạng thái sẽ chồng lên nội dung.

Để tránh chồng chéo nội dung và thanh trạng thái, tôi cần thêm điều hướng lên trên cùng. Sau bản cập nhật năm 2022, NavigationView sẽ chuyển đổi sang NavigationStack và NavigationSplitView.

Cách đơn giản để tạo các thanh điều hướng đó bằng cách sử dụng NavigationStack là,

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

Nhưng vấn đề tôi gặp phải là, nếu tôi không muốn bất kỳ tiêu đề điều hướng nào thì sao.

Có vẻ như nó hoạt động tốt mà không có bất kỳ tiêu đề nào cho NavigationView trước đó từ ví dụ hướng dẫn bên dưới.

Ngoài ra, NavigationStack không hoạt động bằng cách thêm nó vào ContentView.

Tôi đã kiểm tra để chắc chắn rằng nó cuối cùng cũng được hiển thị sau khi tôi viết nó tại Ứng dụng.

import SwiftUI

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