私はSwiftUIが初めてで、モーダル(シート)を返すがビューは返さないタブを含むタブバーを作成しようとしました。試してみたところ、うまくいくこともあれば、うまくいかないこともあります。ユーザーがモーダルを閉じた後、前のタブ付きアイテムを選択したタブにしたい。しかし、私はエラーが何であるかを見つけることができません。誰かが私のコードの問題を説明してくれますか?
import SwiftUI
struct ContentView: View {
@State var isPresenting = false
@State private var selectedItem = 1
@State private var oldSelectedItem = 1
var body: some View {
TabView(selection: $selectedItem){
Text("1")
.tabItem {
Image(systemName: "house")
}.tag(1)
.onAppear {
self.oldSelectedItem = self.selectedItem
}
Text("") // I want this to display the sheet.
.tabItem { Image(systemName: "plus.circle") }
.tag(2)
.onAppear {
self.isPresenting = true
self.selectedItem = self.oldSelectedItem
}
Text("3")
.tabItem {
Image(systemName: "calendar")
}.tag(3)
.onAppear {
self.oldSelectedItem = self.selectedItem
}
}
.sheet(isPresented: $isPresenting) {
testSheet
}
.accentColor(Color.orange)
}
var testSheet : some View {
VStack{
Text("testing")
}
}
}