2011-07-06 14 views
5

Estoy tratando de colocar una UIToolbar en la parte superior de un UIPopoverController de la misma forma que Apple lo hizo en páginas y keynote con la barra de herramientas "shapes", "tables", "charts" "shapes" .Barra de herramientas UIPopoverController en la parte superior

enter image description here

He conseguido colocar a uno en la parte inferior con el mismo método descrito como en this post pero soy incapaz de moverlo a la parte superior.

Lo puedo hacer simplemente colocando una UIToolbar normal dentro de uno de los controles de vista secundarios sin embargo la barra de herramientas no parece seguir la misma línea que el borde y no se ve tan bien como en las aplicaciones de apple.

¿Alguien tiene alguna sugerencia sobre cómo hacer esto, o si es posible? Cualquier ayuda sería muy apreciada.

Gracias!

Respuesta

10

Use un UINavigationController que contiene sólo su uno ViewController como contenido de la popoverController, así:

MyViewController *myVC = [[myViewController alloc] init]; 

UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:myVC]; 

myPopoverController = [[UIPopoverController alloc] initWithContentViewController:navCon]; 

[myVC release]; 
[navCon release]; 

[myPopoverController presentPopoverFromRect:rect 
            inView:view 
        permittedArrowDirections:UIPopoverArrowDirectionRight 
            animated:YES]; 

Luego, en el inicio de viewController, establecer los elementos de la navigationController:

self.navigationItem.title = @"myTitle"; 
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editButtonTapped:)] autorelease]; 

Usted puede ir loco y poner lo que quieras allí:

self.navigationItem.titleView = [[MySpecialTitleView alloc] initWithFrame...]; 

Su controlador de navegación no estará navegando si solo hay un ViewController en su pila.

iOS 7 advertencia: NavigationBars dentro de los popovers parecen ignorar el tinte en iOS 7. Creo que es un error y te animo a que presente un informe de error con Apple si se encuentra con este problema.

+0

Esto es exactamente lo que he estado buscando! ¡Muchas gracias! – Thomas

1

Puede colocar una barra de herramientas encima de su UIPopoverController.

Más precisamente, debe colocarlo encima del UIViewController que se establecerá como el contenido de su UIPopoverController al llamar a initWithContentViewController.

Si está utilizando IB:
1) arrastre un UItoolbar a la parte superior de su UIViewController
2) seleccionar la UIToolbar, vaya al inspector de tamaño y en la sección autosizing:
- Haga clic en el indicador de la parte superior para fijar el margen superior
- haga clic en el indicador inferior para hacer el margen inferior flexibles

en la pequeña ventana de vista previa de la barra roja debe permanecer en la cima

Cuestiones relacionadas