NavigationStack


ULASHISH

SwiftUI navigatsiya: NavigationStack

View’larni push va pop qilish uchun konteyner sifatida NavigationStack dan foydalaning.

View’larni stack’ga push qiladigan havolalar yaratish uchun NavigationLink dan foydalaning.

Havola tanlanganda ko‘rsatiladigan view’ni belgilash uchun .navigationDestination dan foydalaning.


NavigationStack misoli

View’larni NavigationLink va .navigationDestination yordamida push va pop qiling.

Oddiy stack push

Oddiy stack push (Basic Stack Push) — view’ni stack’ga push qilib, tugmani bosganingizda uni pop qilish.

Misol

import SwiftUI

struct Detail: View { let value: Int; var body: some View { Text("Detail: \(value)") } }

struct NavStackBasicDemo: View {
  var body: some View {
    NavigationStack {
      List(1...5, id: \.self) { n in
        NavigationLink("Item \(n)", value: n)
      }
      .navigationDestination(for: Int.self) { n in Detail(value: n) }
      .navigationTitle("Items")
    }
  }
}
import SwiftUI

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

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

Misolni ishga tushirish »

Yuqoridagi misolda NavigationLink view’ni stack’ga push qilish uchun, .navigationDestination esa havola tanlanganda ko‘rsatiladigan view’ni belgilash uchun ishlatilgan.



Dasturiy path (Programmatic Path)

Dasturiy path (Programmatic Path) — view’ni stack’ga push qilib, tugmani bosganingizda uni pop qilish.

Oddiy stack push va dasturiy path o‘rtasidagi farq shundaki, dasturiy path navigatsiya holatini boshqarish uchun NavigationPath dan foydalanadi.

Misol

import SwiftUI

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

struct NavStackPathDemo: View {
  @State private var path: [Int] = []
  var body: some View {
    NavigationStack(path: $path) {
      VStack(spacing: 12) {
        Button("Go to 7") { path.append(7) }
        Button("Back") { if !path.isEmpty { _ = path.removeLast() } }
      }
      .navigationDestination(for: Int.self) { n in NumberDetail(n: n) }
      .navigationTitle("Path Demo")
    }
  }
}
import SwiftUI

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

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

Misolni ishga tushirish »

Yuqoridagi misolda navigatsiya holatini boshqarish uchun NavigationPath ishlatilgan.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!