navigationDestination


ULASHISH

SwiftUI navigatsiya: navigationDestination

NavigationStack path’iga push qilingan qiymatlar uchun .navigationDestination(for:) yordamida tiplashtirilgan manzillarni belgilang.


Tiplashtirilgan manzillar

Tiplashtirilgan manzillar NavigationStack path’iga push qilingan qiymatlar uchun .navigationDestination(for:) yordamida manzillarni belgilash imkonini beradi.

Misol

import SwiftUI

struct NumberDetail: View { let n: Int; var body: some View { Text("Number: \(n)") } }
struct TextDetail: View { let s: String; var body: some View { Text("Text: \(s)") } }

struct DestinationTypedDemo: View {
  @State private var intPath: [Int] = []
  @State private var stringPath: [String] = []
  var body: some View {
    NavigationStack(path: $intPath) {
      VStack(spacing: 12) {
        Button("Push Int 7") { intPath.append(7) }
        NavigationLink("Push Text 'Hi'", value: "Hi")
      }
      .navigationDestination(for: Int.self) { n in NumberDetail(n: n) }
      .navigationDestination(for: String.self) { s in TextDetail(s: s) }
      .navigationTitle("Typed Destinations")
    }
  }
}
import SwiftUI

struct ContentView: View {
  var body: some View { DestinationTypedDemo() }
}
import SwiftUI

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

Misolni ishga tushirish »

Yuqoridagi misolda NumberDetail va TextDetail view’lari NavigationStack path’iga .navigationDestination(for:) yordamida push qilingan qiymatlar uchun manzil sifatida ishlatilgan.



Enum asosidagi marshrutlash

Enum asosidagi marshrutlash NavigationStack path’iga push qilingan qiymatlar uchun .navigationDestination(for:) yordamida manzillarni belgilash imkonini beradi.

Misol

import SwiftUI

enum Route: Hashable { case number(Int), text(String) }

struct DestinationMultiDemo: View {
  @State private var path: [Route] = []
  var body: some View {
    NavigationStack(path: $path) {
      VStack(spacing: 12) {
        Button("Go to number 5") { path.append(.number(5)) }
        Button("Go to text 'Hello'") { path.append(.text("Hello")) }
      }
      .navigationDestination(for: Route.self) { r in
        switch r {
        case .number(let n): Text("Number: \(n)")
        case .text(let s): Text("Text: \(s)")
        }
      }
      .navigationTitle("Enum Destinations")
    }
  }
}
import SwiftUI

struct ContentView: View {
  var body: some View { DestinationMultiDemo() }
}
import SwiftUI

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

Misolni ishga tushirish »

Yuqoridagi misolda Route enum’i NavigationStack path’iga .navigationDestination(for:) yordamida push qilingan qiymatlar uchun manzillarni belgilashda ishlatilgan.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!