2013-08-24 14 views
9

Mam wrażenie, że to naprawdę nie powinno sprawiać mi tyle kłopotów i że czegoś brakuje, ale po prostu nie mogę niech to zadziała. Tak więc chcę TabBar, który przełącza się między 3 różnymi TableViews. Wszystkie z nich muszą mieć pasek nawigacyjny, ale nie kontroler NavigationController (jak to wszystko ma miejsce po początkowym przejściu modalnym do TabBarController). doskonałym przykładem tego, o co mi chodzi, są zakładki Apple Maps.Jak dodać NavigationBar (bez NavigationController) i SearchBar do TableView

Próbowałem trzech różnych metod, z których wszystkie mają nieudane na różne sposoby:

  1. dodać Tableview, a następnie dodać do tego NavBar, następnie dodać paska wyszukiwania. SearchBar po prostu zastępuje NavBar.
  2. Dodaj widok, a następnie dodaj do tego NavBar. Następnie dodaj TableView jako subView. Kiedy dodaję SearchBar do tego subView, kończy się to pod komórką prototypową (nie próbowałem tego uruchamiać, ponieważ musiałbym napisać nowy ViewController, aby obsłużyć fakt, że TableView jest teraz wygladem i nie myślał, że było warto to właśnie z powodu problemów z układem).
  3. Dodaj widok, a następnie dodaj do tego NavBar. następnie dodaj ContainerView, który ma TableViewController. To po prostu zawiesza się podczas działania. Nie jestem pewien, co to za błąd, ponieważ nie jestem zbyt pewny, gdzie można złapać wyjątki ...

Mam zaimplementowany jak dotąd większość interfejsu w IB i chciałbym go zachować w ten sposób, o ile to możliwe, ale jestem pewien, że musi tu być coś oczywistego, czego tu brakuje. Nie byłem programistą iOS od bardzo dawna, więc nie przejmuj się, jeśli brakuje mi czegoś podstawowego! Każda pomoc byłaby bardzo doceniana. Nawet jeśli chodzi tylko o to, nad którym podejściem powinienem iść i dalej próbować. Dzięki!

Edit

powinienem chyba wspomnieć, że kiedy powiedziałem TableViewController mi chodziło niestandardową podklasę o TableViewController który wykorzystuje FetchedResultsController aby wypełnić komórki.

+0

dodać pasek nawigacji xib, a także dodać pasek wyszukiwania w XIB. –

+0

Niestety, otrzymuję ten sam nieznany błąd, co ja otrzymałem z numerem 3. Nie mogę stwierdzić, co to jest nawet z wieloma punktami przerwania, próbami i połowami itp. TableView ładuje się dobrze, gdy tabBarController jest dostępny przez naciśnięcie, to jest tylko z modalnymi suwakami wydaje mi się, że mam ten problem. – GraemeArthur

Odpowiedz

2

Powinieneś dodać pasek nawigacyjny do kontrolera UIViewController (nie kontrolera widoku tabeli), a następnie dodać widok tabeli, a do tego widoku tabeli dodać pasek wyszukiwania i komórkę. Testowałem to i działa dobrze.

+0

Przepraszam, zredagowałem oryginalne pytanie, aby to powiedzieć, ale jest to niestandardowa podklasa TableViewController, więc nie wiem, czy to rozwiązanie bardzo mi pomoże. Wyskoczyłem NavigationController z TVC jako root w międzyczasie, aby działało, ale czuje się źle! – GraemeArthur

+2

To może być jedyny sposób, aby to zrobić, jeśli używasz TVC, ponieważ każdy dodany widok jest dodawany do widoku tabeli. Jeśli chcesz dodać widoki poza widokiem tabeli, musisz użyć kontrolera UIViewController. – rdelmar

10

Jeśli chcesz mieć przejście modalne do nowego kontrolera widoku (lub kontrolera paska kart z zakładkami wskazującymi kontrolery nawigacyjne), a chcesz, aby kontroler widoku miał pasek nawigacji, powinieneś wybrać kontroler widoku, który chcesz przedstawić modalnie, umieść go w kontrolerze nawigacyjnym (Edytor-> Osadź w-> Kontroler nawigacyjny), a następnie modalnie przesuń do kontrolera nawigacyjnego. Ta sama koncepcja dotyczy kontrolera paska kart, z tą różnicą, że będą to selekcje relacji. image of modal segue with navigation bar

+0

Świetna odpowiedź.Jest to niesamowite rozwiązanie umożliwiające korzystanie ze scenorysu. – dustinrwh

Powiązane problemy