ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
`NavigationStack` က screen (View) history ကို stack အနေနဲ့ ထိန်းချုပ်ပေးတဲ့ container ပါ — `NavigationLink` ကို tap ရင် View အသစ်ဆီ ကူးပြောင်း (push) သွားပြီး, top-left back button (automatic ပေါ်လာ) ကို tap ရင် ယခင် screen ဆီ ပြန်သွားပါတယ် (pop) — Android/Compose ရဲ့ NavController.navigate()/popBackStack() concept နဲ့ ဆင်တူပါတယ်, ဒါပေမယ့် iOS မှာ back button ကို manual ရေးစရာ မလိုပါ (automatic ပါလာပါတယ်).
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
`NavigationStack { HomeScreen() }` ကို root မှာ ချထားပြီး, `HomeScreen` ထဲမှာ `NavigationLink("Go to Detail") { DetailScreen() }` လို့ ရေးရင် — tap လိုက်တာနဲ့ `DetailScreen` ဆီ ကူးပြောင်းသွားပြီး, top-left က automatic ပေါ်လာတဲ့ back button (< Home) ကို tap ရင် `HomeScreen` ဆီ ပြန်ရောက်ပါလိမ့်မယ်.
အတူတူ ကြည့်မယ်
struct AppNavigation: View {
var body: some View {
NavigationStack {
HomeScreen()
}
}
}
struct HomeScreen: View {
var body: some View {
NavigationLink("Go to Detail") {
DetailScreen()
}
.navigationTitle("Home")
}
}'Go to Detail' link ကို tap ရင် DetailScreen ဆီ ကူးပြောင်းပြီး, top-left back button ကနေ Home ဆီ ပြန်သွားနိုင်တာ တွေ့ရမည်။၅ မိနစ် စမ်းကြည့်
`AppNavigation`/`HomeScreen`/`DetailScreen` ကို ကိုယ်တိုင်ရေးပြီး Simulator ပေါ်မှာ Home → Detail → back (swipe-back gesture ကိုပါ) ကို တကယ် စမ်းကြည့်ပါ။
သတိလေးတစ်ချက်
iOS ရဲ့ built-in 'swipe from left edge to go back' gesture ကို custom gesture handler (`onTapGesture`, `DragGesture`) ကနေ conflict ဖြစ်အောင် override မလုပ်မိအောင် သတိထားပါ — user expectation ကို ချိုးဖောက်နိုင်ပါတယ်။