2015-06-22 12 views
6

Witaj Próbuję przejść z modala do kontrolera widoku paska kart bez utraty paska kart? Wiem, że pytanie jest krótkie, ale to wszystko, o co proszę.Przejść od widoku modalnego do kontrolera widoku paska kart i nie stracić paska kart.

Scenariusz: Mam kontrolki widoku paska kart, A i B. Modals B do kontrolera widoku C. Potem chce wrócić do View Controller A.

Swift proszę: D

+0

Czy powrocie do kontrolera kreskowego Zakładka z viewController które zostało przedstawione modally, czy ty modally prezentując widok, który znajduje się w kontrolce paska kart? – vacawama

+0

tak, pasek zakładek kontroler następnie modalny do kontrolera widoku, a następnie z powrotem do innej zakładki paska tabulacji – MasterWizard

+0

wróć do innej zakładki w tym samym viewController? – vacawama

Odpowiedz

11

Oto mój przykład, jak to zrobić. W mojej konfiguracji wybieram żółtą ikonę ViewControllerz zakładki, następnie naciśnij Go! który modalnie prezentuje biały ViewController. Naciśnięcie klawisza Exit powoduje powrót do green ViewController.

Storyboard overview


Aby to skonfigurować, należy użyć odwijania segue aby powrócić do viewController który was powołał. Na przykład zaimplementuj to w pierwszym ViewController na karcie (ten, który wywołuje modal segue).

@IBAction func backFromModal(_ segue: UIStoryboardSegue) { 
    print("and we are back") 
    // Switch to the second tab (tabs are numbered 0, 1, 2) 
    self.tabBarController?.selectedIndex = 1 
} 

Następnie przełączyć się na inną kartę przy użyciu self.tabBarController?.selectedIndex = n gdzie n jest liczba zakładce naprawdę chcesz się udać. Aby skonfigurować odwijania segue, można albo kontrola -Przeciągnij z przycisku w swojej modalnej kontrolera celu wyjścia ikonę na górze viewController i wybierz backFromModal z podręcznego ...

drag from button to Exit enter image description here


LUB

można skonfigurować odwijania segue być nazywany programowo b y Sterowanie -przeprowadzanie od ikony viewController u góry modalnego kontrolera do ikony zjazdu z ikony i wybierz backFromModal z okna podręcznego.

enter image description here

Następnie przejdź do Document Outline View i kliknij rozwijania segue

enter image description here

i nadać mu identyfikatorw Atrybuty Inspektor na prawo (na przykład "returnFromModal").

enter image description here

Potem nazywasz odwijania segue tak:

self.performSegue(withIdentifier: "returnFromModal", sender: self) 
+0

! Zrobiłem dokładnie to, co chciałem zrobić, nie wiem, że istnieje "self.tabBarController? .selectedIndex"! – MasterWizard

+0

W jaki sposób przekazujesz dane do zielonego kontrolera widoku? – Suragch

+0

@Suragch, aby przekazać dane do zielonego kontrolera widoku od białego, możliwe jest odwijanie bezpośrednio do kontrolera widoku zielonego i przekazywanie danych podczas 'przygotowania (dla: nadawcy:)'. – vacawama