はじめに
SwiftUIを触り始めてまだ1日目
Navigation
での画面遷移を行う際に愚直にコードを書いていたが、解決記事がさっと見つからなかったのでメモ
開発環境
- Swift(version 5.3.1)
- Xcode(version 12.2)
解決したいこと
Navigation
のbackボタンが前画面のViewに更新されるのではなく、下に追加されてしまっている…
いやいや、困るよ(汗
解決する前
- FirstView.swift
- SecondView.swift
- EndView.swift
以上の3画面で構成している
FirstView.swift
struct FirstView: View {
var body: some View {
NavigationView {
NavigationLink(destination: SecondView()) {
Text("Go Second View")
}
}
.navigationTitle("First View")
}
}
SecondView.swift
struct SecondView: View {
var body: some View {
NavigationView {
NavigationLink(destination: EndView()) {
Text("Go End View")
}
}
.navigationBarTitle("Second View", displayMode: .inline)
}
}
EndView.swift
struct EndView: View {
var body: some View {
Text("Hello, World!")
}
}
シンプルに実装したが何が原因なのか…
解決方法
なんかNavigation
が2個生成されてる雰囲気だよね
FirstView.swift
でNavigationView{}
を記述しているからSecondView.swift
ではもしかしていらない感じ??
NavigationLink
だけ残して動くのかな…
SecondView.swift
struct SecondView: View {
var body: some View {
//NavigationView {}削除!
NavigationLink(destination: EndView()) {
Text("Go End View")
}
.navigationBarTitle("Second View", displayMode: .inline)
}
}
これで実行↓
うんうん、この挙動を求めていたの
無事に解決した〜!
最後に
多分、これであってるよね?
愚直に書いてるとこういうところにハマるね
まだまだ初心者だけど頑張ろう
Qiita初投稿…こんな感じの書き方でいいのかなw