Sobes.tech
Junior — Middle

Көп навигациясы бар колдонмодо көп өтүүлөрдү башкаруу үчүн бир NavigationLink компоненти колдонулушу мүмкүнбү?

sobes.tech AI

AIден жооп

SwiftUIде NavigationLink компоненти белгилүү бир көрүнүшкө өтүү үчүн арналган. Бир нече өтүүлөрдү башкаруу үчүн бир NavigationLink колдонуу сунушталбайт, анткени ар бир NavigationLink конкреттүү максатка (destination) байланышкан. Көптөгөн навигациялар менен тиркемелер үчүн ар бир өтүү үчүн өзүнчө NavigationLink түзүү же NavigationDestination жана NavigationStack аркылуу программалык навигацияны колдонуу жакшыраак; анда навигацияны абал аркылуу (мисалы, ар кандай экрандар менен enum) башкарса болот. Бул таза жана башкарылуучу навигацияны камсыздайт.

Программалык навигация менен NavigationStack колдонуу мисалы:

enum Screen {
    case home
    case details
    case settings
}

struct ContentView: View {
    @State private var path = NavigationPath()

    var body: some View {
        NavigationStack(path: $path) {
            VStack {
                Button("Деңгээлдерге өт") {
                    path.append(Screen.details)
                }
                Button("Настройкалар") {
                    path.append(Screen.settings)
                }
            }
            .navigationDestination(for: Screen.self) { screen in
                switch screen {
                case .home:
                    Text("Башкы экран")
                case .details:
                    Text("Деңгээлдер экраны")
                case .settings:
                    Text("Настройкалар экраны")
                }
            }
        }
    }
}