NavigationStack
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() } }
}
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() } }
}
Yuqoridagi misolda navigatsiya holatini boshqarish uchun NavigationPath ishlatilgan.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
