GIFの様に、 SecondView
で Sheet を開くと FirstView
に戻ってしまいます。
解消法は、 NavigationView
→ TabView
を TabView
→ NavigationView
に変えればOKです。
import SwiftUI
struct FirstView: View {
@State var selection = 0
var body: some View {
// NG。勝手に戻る。
// NavigationView {
// TabView(selection: $selection) {
// OK。
TabView(selection: $selection) {
NavigationView {
NavigationLink(destination: SecondView()) {
Text("Go to SecondView").font(.title)
}
.tag(0)
}
.navigationTitle("FirstView")
}
}
}
struct SecondView: View {
@State var isPresented = false
var body: some View {
Button(action: { isPresented = true }) {
Text("open sheet").font(.title)
}
.sheet(isPresented: $isPresented) {
Text("sheet").font(.title)
}
.navigationTitle("SecondView")
}
}
struct FirstView_Previews: PreviewProvider {
static var previews: some View {
FirstView()
}
}
バージョン
Xcode 13.1
iOS 15.0