2010-07-21 28 views
6

¿Cómo establece el título de una vista de UIPopOver mediante programación?Establezca el título de una vista de UIPopOver mediante programación

Encontré algunos ejemplos de código pero no pude establecer el título.

myView *theView = [[myView alloc] initWithNibName:@"myView" 
             bundle:nil]; 
UIPopoverController* aPopover = [[UIPopoverController alloc] initWithContentViewController:theView]; 
[aPopover setDelegate:self]; 
[aPopover setPopoverContentSize:CGSizeMake(320, 320) animated:YES]; 

[theView setPopover:aPopover]; 
[theView release]; 

[self.popoverController presentPopoverFromRect:CGRectMake(510,370,0,0) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 
+0

No estoy seguro, pero la búsqueda de Google en todo me dice que no puede tener un título – vodkhang

+0

Está en todas partes. Por ejemplo, la aplicación de correo en modo vertical. La ventana de popover muestra tus correos electrónicos. – Yazzmi

Respuesta

7

Debe envolver el controlador de vista en un UINavigationCotnroller que agregará una barra de navegación con el título apropiado para el controlador de vista. Algo como esto:

UINavigationController *container = 
    [[[UINavigationController alloc] initWithRootViewController:viewController] autorelease]; 

A continuación, sólo inicializar su popover utilizar container lugar y presentarlo como de costumbre.

+0

No se ve igual si agrega la barra de navegación de IB. – Yazzmi

+0

Ah, por supuesto ... sí, el popover modifica el controlador de navegación para que se vea negro y translúcido. Entonces debe envolver el controlador de vista en un controlador de navegación. –

+0

¿podría mostrarme cómo hacerlo usando el código adobe? ¡Gracias! – Yazzmi

0

intenta establecer el título de la contentViewController de su Popover:

theView.title = @"My Title"; 

o

theView.navigationItem.title = @ "Mi título";

4

sí, exactamente. todo esto podría tener este aspecto:

InfoView *infoView = [[InfoView alloc] init]; 
UINavigationController *container = [[[UINavigationController alloc] initWithRootViewController:infoView] autorelease]; 
UIPopoverController *pop = [[UIPopoverController alloc] initWithContentViewController:container]; 

infoView.title = @"My Title"; 

[pop setDelegate:self]; 
[pop setPopoverContentSize:CGSizeMake(320, 400)]; 
[pop presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
[infoView release]; 
0
let popoverContent = (self.storyboard?.instantiateViewControllerWithIdentifier("Popover"))! as UIViewController 
popoverContent.title = "Details" 
let nav = UINavigationController(rootViewController: popoverContent) 
nav.modalPresentationStyle = UIModalPresentationStyle.Popover 
let popover = nav.popoverPresentationController 
popoverContent.preferredContentSize = CGSizeMake(100, 100) 
popover!.delegate = self 
popover!.sourceView = self.view 
popover!.sourceRect = CGRectMake(100,100,0,0) 

self.presentViewController(nav, animated: true, completion: nil) 
Cuestiones relacionadas