7
votes

Définir le titre d'une vue UIPOPOVER par programme

Comment définissez-vous le titre d'une vue uipopover par programme?

J'ai trouvé un certain code d'échantillon mais n'a pas pu définir le titre. P>

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];


2 commentaires

Je ne suis pas sûr, mais cherchez Google autour me dit que cela ne peut pas avoir de titre


Il y en a partout. Par exemple, l'application Mail en mode portrait. La fenêtre Popover affiche vos emails.


4 Réponses :


0
votes

Essayez de définir le titre du contenuViewController de votre Popover: xxx

ou

theview.navigentitem.title = @ "Mon titre";


0 commentaires

7
votes

Vous devez envelopper le contrôleur d'affichage dans un UinavigigezCotnroller qui ajoutera une barre de navigation avec le titre approprié pour le contrôleur d'affichage. Quelque chose comme ceci: xxx

Initialise simplement votre Popover à utiliser conteneur et présentez-le comme d'habitude.


3 commentaires

Cela n'a pas l'air identique si vous ajoutez la barre de NAV de IB.


Ah bien sûr ... Ouais, la popover modifie le contrôleur de navigation pour avoir l'air noir et translucide. Vous devez donc envelopper le contrôleur d'affichage dans un contrôleur de navigation.


Ajouter une vue sur le contrôleur NAV Ajoutez ensuite NAV Controller sur Popover Controller puis définissez le titre du contrôleur NAV?



4
votes

Oui, exactement. Le tout pourrait ressembler à ceci:

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 commentaires

1
votes
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)

0 commentaires