2010-07-21 13 views
6

Jak programowo ustawić tytuł widoku UIPopover?Ustaw tytuł programu UIPopover View Programowo

Znalazłem przykładowy kod, ale nie mogłem ustawić tytułu.

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

Nie jestem pewien, ale szukając wokół google mówi mi, że nie może mieć tytuł – vodkhang

+0

jest wszędzie. Na przykład aplikacja Poczta w trybie pionowym. Okno popover pokazuje twoje e-maile. – Yazzmi

Odpowiedz

7

Musisz zawinąć kontroler widoku w pliku UINavigationCotnroller, który doda pasek nawigacyjny z odpowiednim tytułem kontrolera widoku. Coś takiego:

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

Następnie wystarczy zainicjować popover do korzystania container zamiast i przedstawić go jak zwykle.

+0

Wygląda inaczej, jeśli dodasz pasek nawigacji z IB. – Yazzmi

+0

Ah oczywiście ... tak, popover modyfikuje kontroler nawigacyjny, aby wyglądał na czarny i półprzezroczysty. Powinieneś więc zawinąć kontroler widoku w kontrolerze nawigacyjnym. –

+0

czy możesz mi pokazać, jak to zrobić, używając kodu Adobe? dzięki! – Yazzmi

0

spróbuj ustawić tytuł contentViewController swojej popover:

theView.title = @"My Title"; 

lub

theView.navigationItem.title = @ "My Title";

4

tak, dokładnie. cała sprawa może wyglądać następująco:

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)