Właśnie zainstalowałem Xcode 4.5 do obsługi iOS6 i zobaczyłem nową ikonę o nazwie „Wyjdź” w moim Storyboard, wymienioną pod moimi kontrolerami widoku wraz z „Pierwsza osoba odpowiadająca” itd. Mała zielona ikona oznaczona jako „Wyjście”.
Mogę coś na nim znaleźć ani wymyślić, jak można go użyć.
Ktoś coś o tym wie, jak to działa, do czego służy?
iphone
objective-c
xcode
ipad
storyboard
Josh Kahane
źródło
źródło
Odpowiedzi:
Nazywa się to „ Unwind Segue ”. Niestety, jak dotąd nie ma dokumentacji na ten temat, z wyjątkiem krótkiej wzmianki o liście nowych funkcji XCode 4.5, która stwierdza:
Dobra wiadomość jest taka, że odbyła się sesja z WWDC 2012 wyjaśniająca (między innymi) te stworzenia.
Możesz po prostu zalogować się do Apple iOS Dev Center, podając dane swojego konta programisty, a następnie przejść do strony z filmami WWDC 2012 i obejrzeć „Adopting Storyboard in your App” (piąte od góry). .
Aktualizacja: Oto więcej informacji na ten temat z dokumentacji Apple
(Z docset iOS6> Ogólne> Pierwsze kroki)
A oto ładny przykład tego, jak możesz go zaimplementować
Kolejna aktualizacja:
Oto notatka techniczna firmy Apple dotycząca tego tematu.
źródło
exit
przyciskiem, wybierając metodę, którą chcesz wywołać. Przykład możesz znaleźć tutaj (zaktualizowałem również moją odpowiedź, aby uwzględnić przykład)Wyobraź sobie, że masz sekwencję widoków w swoim storyboardzie:
A -> ... -> Z
Chcesz mieć widoczny przycisk,
Z
który pozwala użytkownikowi przejść z powrotem doA
.Więc to, co musisz zrobić, to dać widok, który chcesz cofnąć aż do, w tym przypadku,
A
metody instancji, która jest oznaczona jako aIBAction
i przyjmuje pojedynczy parametr typuUIStoryboardSegue *
. Nazwa metody i zmienna nie mają znaczenia. Nie ma też znaczenia to, co robisz w ramach implementacji. Oto przykład:Obj-C: Interfejs
In
A
(nieZ
):W
A
implementacji (nieZ
):Swift: Źródło
In
A
(nieZ
):Teraz w swoim storyboardzie controlprzeciągnij z elementu
Z
(IE, przycisk anulowania) doZ
'sExit
. Przeszuka wszystkie widoki wyżej w hierarchii widoków, które mająIBAction
akceptację tylko jednegoUIStoryboardSegue *
jako akcję i wyświetli listę, z której możesz wybrać.Miejmy nadzieję, że było to prostsze i pomocne niż istniejące odpowiedzi. Okazało się, że ten link był szczególnie przydatny, więc jeśli po przeczytaniu mojej odpowiedzi nadal jesteś niejasny, może to ci pomoże (próbowałem po prostu skondensować wszystkie przydatne informacje z tego długiego artykułu w krótką odpowiedź): http://www.freelancemadscience.com/fmslabs_blog/2012/9/24/advanced-storyboard-techniques.html
źródło
Zobacz także Cannot Connect Storyboard Unwind Segue, w którym wyjaśniono wymagania dotyczące ożywienia ikony wyjścia. Musisz mieć, wyżej w hierarchii kontrolera widoku, metodę, która jest:
Oznaczone jako IBAction
Pobiera jeden parametr, który jest UIStoryboardSegue *
Jeśli oba te warunki zostaną spełnione, ikona wyjścia zobaczy to i pozwoli ci połączyć się z nim przez przeciągnięcie kontrolki z przycisku w tym samym kontrolerze widoku.
Tutaj również zamieściłem najprostszy przykład na świecie:
https://github.com/mattneub/Programming-iOS-Book-Examples/tree/master/ch19p638presentedViewControllerStoryboard (poprawiono 12 lipca 2013)
To pokazuje, jak trywialnie łatwo jest teraz przejść do i z powrotem z kontrolera widoku prezentowanego, w przeciwieństwie do całej pracy, którą musiałeś wykonać wcześniej, aby przekazywać informacje tam iz powrotem (zawartość szablonu z delegatem i protokołem , z których wszystkie można teraz usunąć).
źródło
Może pomóc tylko dodanie odrobiny subtelności do definicji wymagań. Jest to oparte na eksperymentach w Xcode 4.6. Okazało się, że jest to specyficznie i tylko zadeklarowanie (!) Metody, która umożliwia żądaną reakcję sterowania i przeciągania z Xcode. Oto pełne wymagania:
IBAction
UIStoryboardSegue
*.M
sekcji implementacji])..M
, z wyjątkiem klasy appdelegate. (Nie widziałem żadnej zależności od jego pozycji w hierarchii kontrolera. Możesz dodać dowolny stary plik, a system wydaje się agregować wszystkie metody, które mająUIStoryboardSegue
parametr i wyświetlać je w menu ikony Zakończ). menu pokaże nawet twoją metodę, jeśli metoda należy do klasy sceny, którą manipulujesz w edytorze scenariuszy, ale pojawi się bez dwukropka i nie wydaje się wyzwalać żadnej akcji w czasie wykonywania.Przykład:
-(IBAction)anymethodname:(UIStoryboardSegue *)myvariable;
źródło