Skocz do zawartości

Witaj!

Zaloguj lub Zarejestruj się aby uzyskać pełny dostęp do forum.

Zdjęcie
- - - - -

Wykonywanie metody po skończeniu innej


  • Zaloguj się, aby dodać odpowiedź
10 odpowiedzi w tym temacie

#1 sebastiankamut

sebastiankamut
  • 57 postów

Napisano 12 lipca 2011 - 19:39

Witam, może mam dość amatorskie pytanie, ale zastanawiam się jak najlepiej to rozwiązać. Mam dwie metody (jedną długą, drugą krótką). Chcę wykonać drugą dopiero gdy wykona się pierwsza. Najprostszy sposób to - (void) a { ... wykonywanie [self b]; } - (void)b { ...wykonywanie } ale czy da się to zrobić jakoś inaczej? - (void) c { [self a]; //kiedy zakończono a [self b]; }

#2 rad3ks

rad3ks
  • 353 postów
  • SkądOberschlesien

Napisano 12 lipca 2011 - 19:48

Instrukcje wykonywane są jedna za drugą. Kończy się jedna, zaczyna druga - metoda. Nie wiem jak i po co chciałbyś to inaczej zrobić.

#3 sebastiankamut

sebastiankamut
  • 57 postów

Napisano 12 lipca 2011 - 20:58

Chyba trochę nie końca tak jest. Mam w jednej metodzie animację, w drugiej coś innego. chcę wykonać drugą metodę po wykonaniu pierwszej (animacji) i niestety nie zawsze jest wykonywana jednej po drugiej...

#4 Roberto

Roberto
  • 13 752 postów
  • SkądWrocław

Napisano 12 lipca 2011 - 21:06

ogólnie to takie rzeczy robi się przez delegaty i metody w stylu animationDidStop (jeżeli chodzi o animacje) i to jest ładna metoda na zrobienie czegoś takiego. i w tym wypadku powinna zadziałać.

#5 sebastiankamut

sebastiankamut
  • 57 postów

Napisano 13 lipca 2011 - 06:51

Hej, właśnie robiłem takie rzeczy poprzez animationDidStop, jednak w tej metodzie (animationDidStop) muszę wywoływać kolejną (np. metoda B). To jest właściwe rozwiązanie?

#6 Roberto

Roberto
  • 13 752 postów
  • SkądWrocław

Napisano 13 lipca 2011 - 08:02

Ogólnie - tak

#7 sebastiankamut

sebastiankamut
  • 57 postów

Napisano 13 lipca 2011 - 18:54

Hej, dzięki, teraz już będę wiedział w jaki sposób rozwiązywać takie problemy. Pojawił mi się jeszcze jeden problem i nie wiem czy dobrze do tego podchodzę... Mam 3 viewControllery (powiedzmy A,B,C). ViewControllerA pokazuje ViewControllerB (poprzez presentModalViewController) ViewControllerB pokazuje po wykonaniu pewnej akcji ViewCOntrollerC Gdy jestem w ViewControllerC chcę w pewnym momencie powrócić bezpośrednio do ViewControlleraA. Jak to zrobić?

#8 Roberto

Roberto
  • 13 752 postów
  • SkądWrocław

Napisano 13 lipca 2011 - 18:57

w tym wypadku powinny siedzieć pewnie w UINavigationControllerze wtedy po prostu wrzucasz i ściągasz je ze stosu.

#9 sebastiankamut

sebastiankamut
  • 57 postów

Napisano 13 lipca 2011 - 19:12

Właśnie tak myślałem żeby to zrobić, chociaż myślę też popróbować z protokołami w ViewControllerach, żeby np. wywoływać jakieś metody bezpośrednio z innej klasy. Jak myślicie, która metoda jest lepsza?

#10 Roberto

Roberto
  • 13 752 postów
  • SkądWrocław

Napisano 13 lipca 2011 - 19:13

Do zarządzania widokami są view controllery Do zarządzania kontrolerami są navigation controllery. Tak jest wygodnie.

#11 sebastiankamut

sebastiankamut
  • 57 postów

Napisano 13 lipca 2011 - 19:16

Rozumiem, dzięki :) Jednak trochę nie rozumiem. Mam ControllerA, ControllerB, ControllerC, ControllerD A->B->C i powrót do A robię bez problemu (popToRootView) A->B->C->D i powrót do A (podobnie jak wyżej działa), powrót do C (popViewController) też działa Ale jak zrobić żeby z D powrócić do B? Próbowałem to zrobić poprzez popToRootViewController, ale ciągle nie działa :/




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych