2016-06-29 16 views
5

Niedawno zacząłem uczyć się programowania ios. Zrobiłem projekt przy użyciu UINavigationController przez osadzenie go, ponieważ potrzebuję paska tytułu. Ale mogę osiągnąć to samo, używając biblioteki UINavigationBar z biblioteki obiektów.Różnica między używaniem UINavigationController a UINavigationBar

Jedyna różnica jaką zobaczyłem to kiedy korzystam z UINavigationController. Gdy używam segue, otrzymuję przycisk "Wstecz". Czy są między nimi jakieś różnice? Którego używa się w jakich sytuacjach?

Nawiasem mówiąc, dlaczego do mojego scenopisu został dodany kolejny NavigationController? Jakie jest jego znaczenie? (Nikt nie wyjaśnił o tym w żadnym wideo, które widziałem)

Dziękuję.

Odpowiedz

3

NavigationController obsługuje własny UINavigationBar automatycznie, a także obsługuje swój stack nawigacyjnego viewControllers The NavigationController ma delegata, który można użyć, aby wiedzieć, co się dzieje w twojej viewControllerNavigationStack itd

Korzystanie Delegat NavigationController ty można na przykład otrzymywać powiadomienia:

  • NavigationController pokaże jakiś viewController, stosując tę ​​metodę:

    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated;

  • NavigationController nie wykazują pewną viewController, stosując tę ​​metodę:

    - (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated; 
    

Można również użyć NavigationController aby przejść do konkretnej viewController na stosie nawigacji, na przykład, czy można pop i pchania viewController bez segues

+0

„The NavigationController ma delegata, że ​​nie można użyć, aby wiedzieć, co dzieje się w Twoim viewControllerNavigationStack i tak dalej ". Czy możesz wyjaśnić to bardziej proszę? –

+0

@ user6528991 Moja odpowiedź została zredagowana w celu wyjaśnienia Twojego komentarza, mam nadzieję, że pomoże to –

+0

, co oznacza "może" nie "nie może", ale nie możesz edytować pytania w SO, dopóki nie zrobisz 6 znaków. – Hakim

2

UINavigationBar:

Klasa UINavigationBar stanowi element sterujący nawigacją po hierarchicznej zawartości . Jest to pasek wyświetlany zwykle na górze ekranu, zawierający przyciski do nawigacji w hierarchii ekranów . Podstawowe właściwości to lewy przycisk (tył), tytuł centrum i opcjonalny przycisk prawy. Można użyć paska nawigacyjnego jako autonomicznego obiektu lub w połączeniu z obiektem kontrolera nawigacji o nazwie .

UINavigationController:

Klasa UINavigationController realizuje wyspecjalizowany widok kontroler, który zarządza nawigacji hierarchicznego treści. Interfejs nawigacyjny umożliwia wydajne prezentowanie danych i ułatwia użytkownikowi nawigowanie po tej zawartości. Generalnie używasz tej klasy tak, jak jest, ale możesz również podklasy do dostosować zachowanie klasy.

Korzystanie z paska nawigacyjnego z kontrolerem nawigacji

Najczęstszym sposobem korzystania pasek nawigacyjny jest w połączeniu z obiektem UINavigationController. Jeśli korzystasz z kontrolera nawigacji do , zarządzając nawigacją między różnymi ekranami zawartości, sterownik nawigacyjny automatycznie tworzy pasek nawigacyjny, a następnie przesuwa i przesuwa elementy nawigacyjne, gdy jest to odpowiednie.

Kontroler nawigacyjny automatycznie przydziela się jako delegat obiektu paska nawigacji. Dlatego przy użyciu kontrolera nawigacji nie przypisać obiekt zwyczaj przekazywać odpowiadające pasku nawigacyjnym

enter image description here

Powiązane problemy