2014-10-02 8 views
5

Witam Jestem nowicjuszem aplikacji ios. Zrobiłem tylko do tej pory tutoriale, które obejmowały aplikacje za pomocą pasków nawigacyjnych lub pasków tabulacji. Teraz chcę stworzyć aplikację łączącą obie.jaki byłby odpowiedni przykład storyboardu do łączenia pasków nawigacji i pasków tabulacji w jednej aplikacji?

Załóżmy, że mam na dole aplikację z paskiem kart z dwoma zakładkami: przyjaciółmi i wrogami. W każdej zakładce planuję mieć listę osób, które są moimi przyjaciółmi i wrogami, dlatego potrzebny będzie przycisk addPerson na pasku nawigacji każdej zakładki.

biorąc pod uwagę ten scenariusz, jaki byłby właściwy sposób na uporządkowanie kontrolerów i widoków? zarówno mój kontroler tabulacji, jak i kontroler nawigacyjny będą wskazywać na ten sam kontroler widoku?

Mam problem z koncepcją, w jaki sposób mój kontroler nawigacji (teraz 2 kontrolery nawigacyjne?) Będzie działał w bardziej złożonej aplikacji.

+0

Nie używam storyboardów w mojej aplikacji, ale mam kontroler tab/nav. Mam kontroler kart jako root, a następnie kontroler nawigacji wewnątrz każdej karty (no, karty, które jej potrzebują). Mam oddzielny plik XIB dla każdej karty. –

Odpowiedz

8

Oto jak ustawić to w swojej Storyboard. TabBarController jest głównym kontrolerem. Każdy element z TabBarController posiada własny NavigationController:

enter image description here

Prawdopodobnie chcesz użyć TableViewController dla swoich listach. Tutaj pokazałem TableViewController jako rootViewController z NavigationController.

Szybkim sposobem na skonstruowanie tego jest usunięcie wszystkiego z Storyboard, a następnie przeciągnięcie dwóch TableViewControllers umieszczając jeden bezpośrednio nad drugim. Wybierz obie, przeciągając obrys wokół nich obu, a następnie wybierz z menu opcję Editor->Embed In->Tab Bar Controller. Następnie wybierz kolejno po sobie kolejno TableViewController i wybierz Editor->Embed In->Navigation Controller.

+1

dzięki za jasną odpowiedź. do dowolnych noobów w przyszłości, upewnij się, że na pasku kontrolnym kart jest zaznaczony "jest kontroler początkowego widoku". automatycznie usunie zaznaczenie, jeśli usuniesz wszystko z storyboardu – stanley

0

Jeśli chcesz ustawić tytuł dynamicznie, należy użyć tej funkcji ze swojego delegata UITabBar:

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool { 
    self.title = viewController.title 
    print("Should select viewController: \(viewController.title) ?") 
    return true; 
} 

Następnie wystarczy ustawić viewControllers title w kontrolerze widok jak normalnie można zrobić z UINavigationBar.

Powiązane problemy