Skocz do zawartości

Witaj!

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

Zdjęcie
- - - - -

Wymana danych między UIViewControllers ?


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

#1 Biacho

Biacho
  • 32 postów
  • SkądWrocław

Napisano 10 października 2011 - 14:58

Witam. Chodzi mi o przekazywanie danych między kontrolerami Root, A, B, itd. W controlerze Root mam pare zmiennych wyświetlanych w textfield i otwarty też drugi controller A i w nim też pewne zmienne.Problem polega na tym, że klikając button w A chcę zmienić wartość danych wyświetlanych w Root ... Po przejrzeniu części sieci... znalazłem rozwiązanie tego za pomocą delegate albo propertise... Czy ktoś może tworzył coś na podobieństwo mojego problemu i mógł by coś poradzić, doradzić, nakierować na odpowiedni tor ? Pozdrawiam, Biacho

#2 macieks72

macieks72

  • 9 873 postów

Napisano 10 października 2011 - 16:56

Generalnie to w konstruktorze albo przez właściwości.

Albo jeśli współdzielisz jakieś dane między obiektami to możesz w swoim AppDelegate je zaimplementować. Albo użyć singletona (dobrym przykładem jest tutaj klasa np. Settings).

Przykład z AppDelegate:
MyAppDelegate *myAppDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
i potem normalnie odwołujesz się do danych:

myAppDelegate.myProperty 

O Singletonach poczytaj, ja ich nigdy nie używałem.

#3 kamil.burczyk

kamil.burczyk
  • 57 postów
  • SkądKraków

Napisano 11 października 2011 - 07:38

Tutaj dyskutowaliśmy o podobnym problemie:
http://myapple.pl/dl...dzy-oknami.html

Ja zaproponowałem właśnie singleton (ObjectContainer razem z implementacją), inni alternatywne pomysły. Na chwilę obecną w kodzie, który jest w tamtym wątku zmieniłbym tylko słownik, z którego dane wyciąga się po kluczach na statycznie typowane referencje/wskaźniki.
Plusem obecnego rozwiązania jest niezmienność klasy ObjectContainer, ale wielkim minusem jest to, że trzeba z palca podawać Stringi z nazwami.
Gdyby zastosować referencje, to wtedy musimy zmieniać klasę jak chcemy dodać do niej coś nowego, ale za to mamy podpowiadanie składni i mniej możliwości popełnienia błędu.
Mam nadzieję, że teraz coś się już rozjaśni :)

#4 Biacho

Biacho
  • 32 postów
  • SkądWrocław

Napisano 11 października 2011 - 16:24

Dzięki bardzo za odpowiedź :) Zdecydowanie rozjaśniło :) Dzięki wielkie jeszcze raz :)

#5 macieks72

macieks72

  • 9 873 postów

Napisano 11 października 2011 - 16:26

To [UIApplication sharedApplication] to też jest chyba singleton, prawda?

#6 kamil.burczyk

kamil.burczyk
  • 57 postów
  • SkądKraków

Napisano 11 października 2011 - 21:07

Tak, jest to singleton. Pytanie jest tylko natury czysto architektonicznej: czy delegat aplikacji powinien być workiem na referencje ? Jeśli ktoś lubi mieć porządek, to raczej nie będzie wrzucał wszystkiego do tej jednej biednej klasy :)




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

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