Navigasi dengan NavigationStack
Penjelasan
NavigationStack adalah container yang mengelola tumpukan (stack) layar navigasi — mirip konsep push/pop di UIKit, tapi dideklarasikan secara deklaratif. Kamu bungkus root View dengan NavigationStack, lalu di dalamnya pakai NavigationLink untuk membuat elemen yang saat ditekan akan mendorong (push) View tujuan ke atas stack. NavigationLink paling sederhana menerima destination langsung: NavigationLink("Judul", destination: DetailView()). Untuk navigasi berbasis data (misalnya push ke detail berdasarkan item yang dipilih dari List), pola yang direkomendasikan Apple adalah navigationDestination(for:) dikombinasikan dengan NavigationLink(value:) — ini memisahkan definisi 'kapan navigasi terjadi' dari 'tampilan apa yang dituju', dan bisa diprogram (programmatic navigation) lewat path binding.
Contoh Konsep
import SwiftUI
struct DetailView: View {
let judul: String
var body: some View {
Text("Detail: \(judul)")
.navigationTitle(judul)
}
}
struct DaftarMenuView: View {
let menu = ["Nasi Goreng", "Sate", "Rendang"]
var body: some View {
NavigationStack {
List(menu, id: \\.self) { item in
NavigationLink(item, destination: DetailView(judul: item))
}
.navigationTitle("Menu")
}
}
}
Praktikum
Buat NavigationStack berisi List dari array String bernama daftar, tiap baris berupa NavigationLink yang menuju Text(item) sebagai destination sederhana.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
NavigationStack menggantikan NavigationView (deprecated sejak iOS 16) — kalau kamu melihat tutorial lama yang memakai NavigationView, konsepnya sama tapi API-nya sedikit berbeda, terutama untuk navigasi terprogram.