Un controlador agrega un UISegmentedControl
a una barra de navegación. El control segmentado se agrega a la barra de navegación en el método viewDidLoad
del controlador, pero los segmentos reales se crean dinámicamente después de llamar al viewDidLoad
.Cambio de tamaño automático en una barra de navegación de un control segmentado construido dinámicamente
No puedo hacer que los segmentos se redimensionen automáticamente cuando se muestra la vista. Todos están aplastados, like in this post, aunque la resolución no se aplica aquí. Si los segmentos se agregan antes de que el control segmentado se agregue al ítem correcto de la barra de navegación (rompiendo la naturaleza dinámica del código), se cambian de tamaño automáticamente y se ven bien cuando se muestra la vista.
Aquí hay una versión reducida de mi código, a continuación. ¿Qué me estoy perdiendo?
@implementation MyController
- (void)viewDidLoad {
// segmentedControl is an ivar
segmentedControl = [UISegmentedControl alloc] initWithItems:[NSArray array]];
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl] autorelease];
self.navigationController.navigationBar.topItem.rightBarButtonItem = barButtonItem;
}
- (void)someMethodCalledAfterViewDidLoad {
[segmentedControl insertSegmentWithTitle:@"a title"
atIndex:0
animated:NO];
}
@end
Hola @Krystsztof, lo intenté pero no funcionó tristemente. – ptrico
¡Trabajó para nosotros, gracias! –