Я пытаюсь сделать приложение Swiftui с помощью tabView. Я хочу, чтобы табуляция работала нормально, но выбранная вкладка может поступать с первой страницы Первое представление
struct ContentView: View {
@State var selectedTab = 0
var body: some View {
VStack{
NavigationView{
VStack(alignment: .center, spacing: 0){
Spacer()
NavigationLink(destination: AccueilView(selectedTab: self.$selectedTab)){
VStack{
Image(systemName: "book")
Text("Enseignements")
}
}
HStack{
NavigationLink(destination: AccueilView(selectedTab: self.$selectedTab)){
VStack{
Image(systemName: "list.dash")
Text("Étapes")
}
}
Image(systemName: "map")
.resizable()
.frame(width: 150, height: 150, alignment: .center)
NavigationLink(destination: AccueilView(selectedTab: self.$selectedTab)){
VStack{
Image(systemName: "photo.on.rectangle")
Text("Album")
}
}
}
NavigationLink(destination: AccueilView(selectedTab: self.$selectedTab)){
VStack{
Image(systemName: "square.stack.3d.down.right")
Text("Chroniques")
}
}
Spacer()
}
.edgesIgnoringSafeArea(.bottom)
}
}
}
}
Второй взгляд
struct AccueilView: View {
@Binding var selectedTab: Int
var body: some View {
TabView(selection: $selectedTab) {
EtapeView(card: Card.example)
.tabItem {
Image(systemName: "list.dash")
Text("Étapes")
}
.tag(0)
AlbumView()
.tabItem {
Image(systemName: "photo.on.rectangle")
Text("Album")
}
.tag(1)
TeachingView(card: Card.example)
.tabItem{
Image(systemName: "book")
Text("Enseignements")
}
.tag(2)
ChronicView(card: Card.example)
.tabItem{
Image(systemName: "square.stack.3d.down.right")
Text("Chroniques")
}.tag(3)
}
}
}
И я хочу, чтобы ContentView передавал selectedTab в AccueilView, в то время как AccueilView не менял нормальное состояние tabView. Например: если я нажимаю «Альбом» в ContenView, я перехожу прямо в «Альбом» в AccueilView и т. Д., А из альбома я могу перейти, например, в хронику. Спасибо за помощь