1

私は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")
        }
    }
}
4

1 に答える 1