2010-07-21 19 views
6

Wie programmierst du den Titel einer UIPopOver View?Den Titel einer UIPopOver-Ansicht programmgesteuert festlegen

Ich fand einige Beispielcode, konnte aber den Titel nicht festlegen.

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

Ich bin nicht sicher, aber sagt mir google sich suchend um, dass es nicht einen Titel – vodkhang

+0

Es ist überall haben kann. Zum Beispiel die Mail App im Hochformat. Das Popover-Fenster zeigt Ihre E-Mails. – Yazzmi

Antwort

7

Sie müssen den Ansichtscontroller in eine UINavigationCotnroller umbrechen, die eine Navigationsleiste mit dem entsprechenden Titel für den Ansichtscontroller hinzufügt. Etwas wie folgt aus:

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

Dann initialisieren Sie einfach Ihre popover container stattdessen zu verwenden und wie gewohnt zu präsentieren.

+0

Es sieht nicht gleich aus, wenn Sie die Navigationsleiste aus IB hinzufügen. – Yazzmi

+0

Ah natürlich ... ja, das Popover modifiziert den Nav Controller so, dass er schwarz und durchscheinend aussieht. Sie sollten den View-Controller also in einen Navigationscontroller einbinden. –

+0

können Sie mir zeigen, wie das mit dem Code Adobe zu tun? Danke! – Yazzmi

0

versuchen, den Titel des contentViewController Ihrer popover einzustellen:

theView.title = @"My Title"; 

oder

theView.navigationItem.title = @ "Mein Titel";

4

ja, genau. das Ganze könnte wie folgt aussehen:

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) 
Verwandte Themen