Comment puis-je avoir un popover venir d'un onglet au lieu d'une vue
-
25-09-2019 - |
Question
J'ai une application TabBar, et je veux un popover à venir d'un des onglets. Yat-il un bon moyen / facile de faire cela sans changer de vue?
La solution
Il n'y a pas actuellement un moyen directement (par un appel api pris en charge) obtenir le cadre d'un élément de la barre d'onglet spécifique. Ce que je fais est juste montrer le menu contextuel de l'extrémité gauche de la barre d'onglets comme ceci:
CGFloat tabBarHeight = self.tabBarController.tabBar.bounds.size.height;
CGRect rect = CGRectMake(0, 0, tabBarHeight, tabBarHeight);
[popoverController presentPopoverFromRect:rect
inView:self.tabBarController.tabBar
permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
Vous pouvez essayer d'estimer la position de l'élément de barre d'onglets en prenant l'orientation actuelle en compte si vous voulez vraiment et régler la coordonnée X du rect ci-dessus.
Vous pouvez aussi regarder à travers les sous-vues de la barre d'onglets et trouver l'objet UITabBarButton mais ce n'est pas documenté il est donc pas recommandé.