¿Cómo puedo tener un popover venir de una pestaña en lugar de una vista
-
25-09-2019 - |
Pregunta
Tengo una aplicación de barra de pestañas, y quiero un popover que venir de una de las fichas. ¿Hay una buena manera / fácil de hacer esto sin cambiar puntos de vista?
Solución
No hay actualmente una forma de forma directa (a través de una llamada de API compatible) obtener el marco de un elemento de la barra pestaña específica. Lo que hago es simplemente mostrar la ventana emergente desde el extremo izquierdo de la barra de pestañas como esto:
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];
Se podría tratar de estimar la posición del elemento de barra de pestañas de tomar la orientación actual en cuenta si realmente quería y ajustar la coordenada X de la rect anteriormente.
También podría mirar a través de los subvistas de la barra de pestañas y encontrar el objeto UITabBarButton pero eso no es documentado por lo que no es recomendable.