2009-10-02 12 views
7

im nuevo en la programación iPhone por lo que si me podría ayudar apreciaría IT he estado en toda la web y no puede encontrar la respuesta a esta.iPhone: ¿agrega control segmentado a la barra de herramientas en lugar de botones dentro del controlador de navegación?

mi configuración actual es como este controlador de navegación

en MainWindow.xib> Ver en el control de navegación en MainWindow.xib llama RootViewController.xib> RootViewController.xib contiene una sola tableview.

Entonces puede cargar en una barra de herramientas utilizando el siguiente código en RootViewController.m

UIBarButtonItem *buttonOne = [[UIBarButtonItem alloc] initWithTitle:@"One" 
    style:UIBarButtonItemStyleBordered target:self action:@selector(buttonOnePushed)]; 
UIBarButtonItem *buttonTwo = [[UIBarButtonItem alloc] initWithTitle:@"Two" 
    style:UIBarButtonItemStyleBordered target:self action:@selector(buttonTwoPushed)]; 

NSArray *barArray = [NSArray arrayWithObjects: buttonOne, buttonTwo, nil]; 
[buttonOne release]; 
[buttonTwo release]; 

[self setToolbarItems:barArray animated:YES]; 

[self.navigationController setToolbarHidden:NO animated:YES]; 

este código funciona para los botones. pero no puedo, por mi vida, descubrir cómo agregar un control segmentado en lugar de los botones. He intentado una matriz con dos controles segmentados, pero luego no puedo agregar la matriz a la barra de herramientas.

si alguien puede que me haga saber algo de código que agregará controles segmentados en la misma forma que he utilizado para agregar los botones que sería de gran aprecio.

gracias, Dave.

Respuesta

20

La solución a esto es (1) crear el UISegmentedControl con todos sus botones, etc., y luego (2) crear un UIBarButtonItem usando el inicializador initWithCustomView:(UIView *)view y proporcionar el control segmentado como la variable a esto. A continuación, agregue el elemento del botón de barra a la barra de herramientas usando una matriz como lo hizo en su código de ejemplo.

Asegúrese de configurar un objetivo y la acción para su controlador segmentado, y recomiendo el establecimiento de su estilo a UISegmentedControlStyleBar. Se verá igual que el que está en la parte inferior de la aplicación Mapas. Espero que esto sea lo que estás buscando.

+0

¿cómo obtengo el segmento que se selecciona en el selector segmentadoController? – Neelesh

+0

comprobar su propiedad selectedSegmentIndex –

11

Aquí está mi código que añade un control segmentado a la barra de herramientas de un mando de navegación. :

NSArray *segItemsArray = [NSArray arrayWithObjects: @"Settings", @"Templates", @"Notes", nil]; 
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segItemsArray]; 
segmentedControl.frame = CGRectMake(0, 0, 200, 30); 
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
segmentedControl.selectedSegmentIndex = 2; 
UIBarButtonItem *segmentedControlButtonItem = [[UIBarButtonItem alloc] initWithCustomView:(UIView *)segmentedControl]; 
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
NSArray *barArray = [NSArray arrayWithObjects: flexibleSpace, segmentedControlButtonItem, flexibleSpace, nil]; 

[self setToolbarItems:barArray]; 
+0

gracias por eso señor, trabajado como un encanto –

Cuestiones relacionadas