2011-11-07 17 views
7

Chcę ukryć dolny pasek narzędzi na określonym ekranie w mojej aplikacji, a IB wydaje się mieć opcję dla tego, co wydaje się podglądać jako działa poprawnie, ale kiedy buduję i testuję aplikację, dno pasek narzędzi wciąż tam jest.Ukryj dolny pasek Kontroler nawigacji

Wiem, że mogę używać [self.navigationController setToolbarHidden:YES];, ale moim pytaniem nie jest, jak to zrobić za pomocą kodu, ale jak to zrobić, aby działał przez Konstruktor interfejsów.

enter image description here

Oto zrzut ekranu z tego, co mówię. Zobacz po prawej, w jaki sposób wybrałem Dolny pasek: Brak - usuwa to dolny pasek z podglądu po lewej stronie. Jeśli ustawię go na wartość wywnioskowaną (zamiast Brak), dolny pasek pojawi się w podglądzie IB.

Jak mogę to poprawnie uruchomić?

Odpowiedz

5

Nie można ustawić tego w Konstruktorze interfejsu. Jeśli zauważysz nagłówek sekcji w IB, gdzie możesz włączać/wyłączać te różne paski, mówi "symulowany". Te opcje służą jedynie do wizualizacji interfejsu użytkownika w IB podczas projektowania. Nie mają one absolutnie żadnego wpływu na działającą aplikację.

+0

"doh! Więc powinienem użyć kodu w metodach 'viewWillAppear' i' viewWillDisapper', aby ukryć i odpowiednio go przywrócić? – Baub

+2

Tak, właśnie to powinieneś zrobić. –

+1

Należy również zauważyć, że istnieje opcja o nazwie "Ukrywa dolny pasek przy wypychaniu", która zrobi to, o co prosisz, w przypadku gdy dany ViewController zostanie wciśnięty na stos nawigacyjny. – Till

3

Włącz "Ukrywa dolny pasek przy wypychaniu" wewnątrz IB w przypadku, gdy kontroler ViewController zostanie wciśnięty na stos UINavigationController.

To powinno dokładnie zrobić to, o co prosisz. Jako bonus, ukrywanie i pokazywanie będą ładnie animowane przez system.

+3

Widzę problem z tym: Kiedy zostaje się odepchniętym do tego początkowego kontrolera widoku, który ma pasek narzędzi, nie ma paska narzędzi, kiedy wrócę do niego. – Baub

+0

@James Można to rozwiązać, ustawiając opcję 'UShavigationController' _Shows Toolbar_. –

4

Nie mogłem tego zrobić w storybooku, gdy chcesz ukryć pasek narzędzi w jednym kontrolerze widoku. Jeśli chcesz go ukryć dla wszystkich, musisz przejść do kontrolera nawigacyjnego i ustawić wartości w scenorysie. Ale to sprawia, że ​​wszystkie kontrolery widoku, aby ukryć paski narzędzi. Jeśli chcesz go ukryć dla jednego kontrolera widoku, użyj tego w tym kontrolerze widoku:

-(void) viewWillAppear:(BOOL)animated 
{ 
    [self.navigationController.toolbar setHidden: YES]; 
} 

-(void) viewWillDisappear:(BOOL)animated 
{ 
    [self.navigationController.toolbar setHidden: NO]; 
} 
Powiązane problemy