2013-03-19 9 views
5

Szukałem tego problemu wszędzie. Wiem, jak działa scena odprężania. I wprowadziły następujący kod w VCPrzeciąganie na wyjście kontrolera viewcontroler nie działa

-(IBAction)returned:(UIStoryboardSegue *)segue { 
try.text = @"Returned from Scene 1"; 
} 

Ale kiedy idę do mojego B VC (co jest VC Chcę wrócić do VC Od) i ctrl przeciągnąć przycisk na zjazd na na dole to mi nie pozwala. Żadna funkcja nie pojawia się w opcji wyjścia. Ktoś jeszcze miał ten problem lub może pomóc?

+0

Czy dodałeś publiczną deklarację do A .h? A jaki jest rodzaj przejścia z A na B? – Rob

+0

B jest podklasą A? Czy to powinno zrobić? – Sfocker

+1

Nie. Powinieneś mieć dwie sceny na swoim scenorysie, jedną, której klasą niestandardową jest A, a drugą z B.Powinieneś wtedy mieć pchnięcie lub modalne przejście z punktu A do punktu B. A jeśli akcja A zostanie rozwinięta przez nas zdefiniowane w A .h, Kiedy przeciągniesz z kontrolki na wyjście z wyjścia B do B, powinieneś zobaczyć tam listę rozwijanej odprężenia. – Rob

Odpowiedz

16

Aby skonfigurować odwijania segue należy

  1. Skonfiguruj dwie sceny ze standardowym modal lub pchania segue między nimi:

    enter image description here

  2. Definiowanie klas niestandardowych te dwie sceny będą odpowiednimi kontrolerami widoku.

  3. Wdrożenie działań w .m na widok kontrolera A:

    - (IBAction)unwindToA:(UIStoryboardSegue *)segue 
    { 
        //returning to A 
    } 
    
  4. Następnie można utworzyć segue w B przez kontroli -dragging (lub kliknij prawym przyciskiem myszy, przeciągając) z jakiejś kontroli w dół do gniazda wyjścia na pasku poniżej sceny B:

    enter image description here

  5. A jeśli wszystko powyżej jest skonfigurowany odpo ctly, można teraz zobaczyć swój odpoczynek segue wymienione w popover:

    enter image description here

+1

W rzeczywistości nie potrzebujesz deklaracji w .h, Xcode wciąż znajduje to tak długo, jak długo implementujesz metodę z poprawnym podpisem. – rdelmar

+0

@rdelmar Dzięki. Usunięto niepotrzebną .h deklarację z mojej odpowiedzi. – Rob

1

Miałem też problem z tym, mimo wszystko został prawidłowo skonfigurowany. W końcu próbowałem zamknąć projekt i ponownie go otworzyć i to wystarczyło. To musiał być jakiś błąd w Xcode.

To nie wydaje się być przyczyną twojego problemu, ale pomyślałem, że dodam odpowiedź na wypadek, gdyby ktoś miał ten sam problem.

+0

Hej, to samo dzieje się ze mną! Po prostu losowo nie mam już wyskakujących okienek "Wyjdź". Ale zamknąłem i ponownie otworzyłem Xcode i nadal nie działa! Arghhh –

+0

Naprawiono go przez usunięcie danych pochodnych i ponowne uruchomienie Xcode. –

+0

Wobec tego samego problemu, nie ma wyskakujących okienek "Wyjście" nawet ponowne uruchomienie nie wydaje się działać dla mnie. Czy jest jakiś inny sposób, aby to naprawić? – hozefam

0

@LoPoBo, @hozefam, & @Van Du Tran

Jeśli zamknięcie nie działa, być może były przeciągnięcie w niewłaściwy sposób. Zamiast klikać na Bar Button Item i przeciągając od Action Segue do exit spróbuj kliknąć prawym przyciskiem myszy -> przytrzymaj & przeciągnij do exit segue. To mi się nie podobało przez dobre 20 minut, zanim się zorientowałem. Mam nadzieję, że to pomoże komuś innemu. Korzystanie z xcode 6.1

1

Aby włączyć wyjście Exit, dodaj ten kod do viewController. Teraz powinieneś być w stanie ctrl przeciągnąć, aby wyjść z gniazdka. To jest dość dziwne, że powinna istnieć pusta metoda, aby działało.

swift 
@IBAction func unwindSegue(unwindSegue:UIStoryboardSegue) 

objC 
- (IBAction)unwindSegue:(UIStoryboardSegue *)sender; 
Powiązane problemy