J'ai une barre d'onglets avec cinq éléments, et j'essaie d'ajouter une fonctionnalité pour faire défiler vers le haut lorsque l'utilisateur appuie de nouveau sur l'élément de la barre d'onglets. Ajouté le UITabBarControllerDelegate
aux vues où je veux déclencher l'événement et également créé une fonction pour déterminer l'index de la barre d'onglets sélectionné. Lorsque j'ouvre l'application, l'index 0 est sélectionné automatiquement et fonctionne parfaitement. L'affichage défile automatiquement vers le haut lorsque je défile vers le bas et touche l'index de la barre d'onglets. Le problème se produit quand je vais à l'index 1 et déclenche le défilement là. Il supprime en quelque sorte complètement le défilement automatique de mon premier élément de la barre d'onglets.Swift - L'index de la barre d'onglets sélectionné ne déclenche pas le défilement vers le haut
La sélection d'autres éléments de la barre d'onglets sans le défilement automatique n'a aucun effet sur l'index 0.
Accueil (indice 0)
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
let tabBarIndex = tabBarController.selectedIndex
if tabBarIndex == 0 {
self.collectionView?.setContentOffset(CGPoint(x: 0, y: -10), animated: true)
}
}
utilisateurs (index 1)
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
let tabBarIndex = tabBarController.selectedIndex
if tabBarIndex == 1 {
self.tableView?.setContentOffset(CGPoint(x: 0, y: 0), animated: true)
}
}
A 'UITabBarController' ne peut avoir qu'un seul délégué. Le dernier gagne. – rmaddy
Vraiment! Eh bien, comment puis-je ajouter le défilement automatique à deux différents éléments de la barre d'onglets, alors? –