znalazłem się na własnej skórze, żeJaka jest różnica między navigationController.navigationBarUkryty i navigationController.navigationBar.hidden?
navigationController.navigationBarHidden = NO;
i
navigationController.navigationBar.hidden = NO;
nie to samo. W rzeczywistości, jeśli użyję pierwszej składni, aby ukryć pasek nawigacji, nie mogę użyć drugiej składni, aby to pokazać: po prostu nic nie zrobi. Co więcej, pierwsza składnia do pokazywania/ukrywania paska nawigacji zawsze działa dla mnie, podczas gdy druga składnia działa czasami, ale nie zawsze. Nie potrafiłem dokładnie określić, kiedy to zadziała, a kiedy nie.
Gdy utknąłem przy naprawianiu kodu innej osoby (rozsądnie duża aplikacja: ponad 20 UIViewControllers), musiałem przeprowadzić globalne wyszukiwanie pod kątem navigationBar.hidden
i zastąpić je navigationBarHidden
. Następnie musiałem przeprowadzić globalne wyszukiwanie pod kątem navigationBar setHidden:
i zastąpić je składnią navigationBarHidden
. To ostatecznie naprawiło problem.
Chciałbym jednak zrozumieć, dlaczego podane są dwie różne opcje i jaka jest prawdziwa różnica między nimi.
OK, zaczyna to mieć sens. Oznacza to, że nie powinienem używać bezpośrednio 'navigationBar.hidden', ale zamiast tego użyj' navigationBarHidden' - prawda? –
Tak, wydaje się, że tak jest, ponieważ masz jawną właściwość, która ukrywa i pokazuje navBar –
@AleksG przeczytaj zaktualizowaną odpowiedź –