Skocz do zawartości

Witaj!

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

Zdjęcie
- - - - -

rightBarButtonItem i problem z "podpięciem" akcji


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

#1 darcysko

darcysko
  • 29 postów

Napisano 08 listopada 2010 - 09:08

Witam,

na początek powiem, że to moja pierwsza aplikacja, więc proszę o wyrozumiałość ;)
Mam problem z "podpięciem" akcji do rightBarButtonItem.

Oto kod:
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(jakasAkcja:)] autorelease];

W jakasAkcja wywołuję sobie funkcję do pobierania danych z neta i parsowania XML'a.
Wszystko działa niby OK, ale gdy chcę zrobić coś w rodzaju Loadera (Trwa wczytywanie...) pojawia się problem.
Loader się coprawda pojawia, ale dopiero gdy dane zostaną już pobrane i sparsowane.

- (IBAction)jakasAkcja:(id)sender
{
        //tutaj np. chcę wstawić ActivityIndicator 
	[self upDate];
        //tutaj STOP
}

Wiecie może czemu tak jest, bo ja zupełnie tego nie rozumiem.
Będę wdzięczny za pomoc.

#2 dusker

dusker
  • 383 postów
  • SkądAmsterdam

Napisano 08 listopada 2010 - 10:49

Najprawdopodobniej dzieje się tak dlatego, bo wywołujesz metodę parsowania XML na głównym wątku - co blokuje UI. Rozwiązanie: odpalaj metodę w innym wątku za pomocą klasy NSThread, a konkretnie metody:
+ (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument


#3 darcysko

darcysko
  • 29 postów

Napisano 08 listopada 2010 - 11:33

Dzięki wielkie! O to chodziło :)

#4 dusker

dusker
  • 383 postów
  • SkądAmsterdam

Napisano 08 listopada 2010 - 13:56

Pamiętaj tylko, żeby wszelkie zmiany w UI robić z wątku głównego, inaczej możesz wlecieć w kłopoty :)




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

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