Study
SwiftUI

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.

Editor Latihan

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.