Bonjour,
J'ai un problème avec ma liste. La fonction "searchable" fonctionne très bien lorsque la liste est simple et ne contient ni boutons, ni NavigationLink, mais une fois ceux-ci inclus, la barre de recherche ne filtre plus la liste.
Si vous avez une solution...
Merci de votre aide !
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Bonjour,
Je fais face à un problème avec le NavigationLink de mon appli :
il y a plusieurs boutons de navigation sur ma vue, auxquels j'ai attribués, à chacun, une vue de destination.
Mais lorsque je clique sur l'un ou l'autre des boutons, la vue qui m'est renvoyée est aléatoire, et se balade entre toutes les vues de destination, que j'aie pourtant attribuées, une à une, à chaque bouton.
Ainsi, en présence de plusieurs boutons et de plusieurs vues de destination, comment faire pour que chaque bouton n'ouvre que sur sa propre vue de destination (et non sur toutes les autres )?
J'ai essayé plusieurs méthodes, mais là, je crois bien devoir demander l'aide de la communauté.
Merci d'avance !
//
// Techniques.swift
// Survivre
//
// Created by LEZIER CHRISTOPHE on 26/08/2022.
//
import SwiftUI
struct GrowingButton5: ButtonStyle {
func makeBody(configuration: Configuration) -> some View {
configuration.label
.padding()
.clipShape(Capsule())
.scaleEffect(configuration.isPressed ? 1.2 : 1)
.animation(.easeOut(duration:0.2),
value : configuration.isPressed)
}
}
struct Accueil: View {
@State var isOn = false
var body: some View {
NavigationView {
ScrollView {
VStack {
Group {
Text("SURVIVING")
.font(.largeTitle)
Text("THE TWENTY-FIRST")
.font(.title)
Text("CENTURY")
.font(.title)
Spacer()
Text("Petite Application de Survie")
.font(.title3)
VStack {
NavigationLink(destination : Main(), isActive : $isOn){EmptyView()}
Button(
action:{
if isOn == false {
isOn = true
}else{
isOn = false
}
},
label :{
Image("Surviving_Horizontal 5")
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 150, height: 150)
.padding(.top)
})
}
Text("A l'usage des Honnêtes Gens")
.font(.title3)
VStack {
NavigationLink(destination: Presentation(), isActive : $isOn, label: {
Button(
action:{
if isOn == false {
isOn = true
}else{
isOn = false
}
},
label :{
Image("Chapeau")
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 100, height: 90)
})
})
}
Text("PRESENTATION")
.font(.title3)
}
Group {
Spacer()
VStack {
NavigationLink(destination: Reperes(), isActive : $isOn, label: {
Button(
action:{
if isOn == false {
isOn = true
}else{
isOn = false
}
},
label :{
Image("Reperes")
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 80, height: 80)
.padding(.bottom)
})
})
}
Text("REPERES")
.font(.title3)
Spacer()
VStack {
NavigationLink(destination: Ressources(), isActive : $isOn, label: {
Button(
action:{
if isOn == false {
isOn = true
}else{
isOn = false
}
},
label :{
Image("Ressources")
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 90, height: 60)
})
})
}
Text("RESSOURCES")
.font(.title3)
}
Group {
Spacer()
VStack {
NavigationLink(destination: Techniques(), isActive : $isOn, label: {
Button(
action:{
if isOn == false {
isOn = true
}else{
isOn = false
}
},
label :{
Image("Technique")
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 90, height: 80)
})
})
Text("TECHNIQUES")
.font(.title3)
}
Spacer()
Spacer()
VStack {
NavigationLink(destination: Bonus(), isActive : $isOn, label: {
Button(
action:{
if isOn == false {
isOn = true
}else{
isOn = false
}
},
label :{
Image("Bonus")
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 80, height: 70)
})
})
Text("BONUS")
.font(.title3)
}
}.frame(width: 300, height: 50, alignment: .center)
}.buttonStyle(GrowingButton5())
.buttonStyle(PlainButtonStyle())
}
}
}
}
struct Accueil_Previews: PreviewProvider {
static var previews: some View {
Accueil()
.previewInterfaceOrientation(.portraitUpsideDown)
}
}