2011-07-06 32 views
5

Próbuję umieścić pasek UIToolbar u góry kontrolera UIPopoverController w taki sam sposób, w jaki Apple zrobił na stronach i keynote z "mediów", "tabel", "wykresów" "kształtów" paska narzędzi .Pasek narzędzi UIPopoverController u góry

enter image description here

udało mi się umieścić jeden na dole przy użyciu tej samej metody, jak opisano w this post ale jestem w stanie przenieść go na górę.

Mogę to zrobić, umieszczając zwykły pasek UIToolbar w jednym z kontrolerów widoku potomnego, ale pasek narzędzi nie wydaje się podążać tą samą linią co obramowanie i nie wygląda tak ładnie, jak w aplikacjach Apple.

Czy ktoś ma jakieś sugestie, jak to zrobić, czy jest to możliwe? Każda pomoc byłaby bardzo cenna.

Dzięki!

Odpowiedz

10

Użyj UINavigationController, która posiada tylko swój jeden ViewController jako treści popoverController, na przykład tak:

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

Następnie w pliku init viewController użytkownika, ustaw navigationController za elementy:

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

Możesz iść Szalony i umieścić tam, co chcesz:

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

Twój kontroler nawigacyjny nie będzie nawigował, jeśli na stosie jest tylko jeden kontroler ViewController.

Ostrzeżenia iOS 7: Nawigacja wewnątrz pasów nawigacyjnych wydaje się ignorować odcień w iOS 7. Myślę, że to błąd i zachęcam do zgłoszenia zgłoszenia błędu z jabłkiem, jeśli napotkasz ten problem.

+0

To jest dokładnie to, czego szukaliśmy! Dzięki wielkie! – Thomas

1

Możesz umieścić pasek narzędzi na wierzchu kontrolera UIPopoverController.

Dokładniej, musisz umieścić go na UIViewControllerze, który zostanie ustawiony jako treść twojego UIPopoverController podczas wywoływania initWithContentViewController.

Jeśli używasz IB:
1) przeciągnąć UItoolbar do góry UIViewController
2) Wybierz UIToolbar, przejdź do inspektora rozmiarze iw sekcji autosizing:
- kliknij na najwyższym wskaźniku ustalić górny margines
- kliknij na wskaźniku dolnym aby dolny margines elastycznego

W małym oknie podglądu czerwony pasek powinien pozostać na szczycie

Powiązane problemy