Jak przekazać tablicę z jednego kontrolera widoku do drugiego?


Rozwijam aplikację. W nim muszę przekazać tablicę z jednego kontrolera widoku do innego kontrolera widoku.
W jaki sposób mogę to zrobić?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz to zrobić, definiując właściwość tablicy w drugim View ViewControllers. H, na przykład:
@interface SecondViewController : UIViewController 
@property(nonatomic, strong)NSArray *array;
@end

Teraz w FirstViewconrtoller po prostu go przekaż
SecondViewController *controller = [[SecondViewController alloc]....]
controller.array = yourArray.//the array you want to pass
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nie zwróciłbym bezpośredniego łącza do tablicy za pomocą
Powrót _TheAray;
. Jest to zazwyczaj zła konstrukcja kodu, aby to zrobić. Najlepszym rozwiązaniem twojego problemu byłoby:
W pliku .h Twojego pierwszego kontrolera:
@interface FirstViewController : UIViewController
{
NSArray *_theArray;
}- (NSArray *)theArray;

W pliku .m pierwszego kontrolera:
- (NSArray *)theArray
{
return [NSArray arrayWithArray:_theArray];
}

I gdziekolwiek chcesz, w swoim drugim kodzie kontrolera:
NSArray *fooArray = [firstControllerReference theArray];

Zauważ, że w tym przykładzie odniesienia do obiektów przechowywane w
fooArray
są takie same jak w
theArray
. Więc jeśli zmienisz obiekt w
fooArray
, zmieni się to również w
theArray
.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

po prostu zadeklaruj je w pliku .h & amp;, przypisz im właściwość nieatomową &, a następnie zsyntetyzuj. Teraz utwórz obiekt klasy & amp; dostęp do tej tablicy :) jest bardzo prosty :)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Szybko
Pierwszy kontroler widoku
w przygotowaniu
var yourArray = [String]()
yourArray.append("String Value")
let testEventAddGroupsViewController = segue.destination as!
TestEventAddGroupsViewController
testEventAddGroupsViewController.testEvent = yourArray

W drugim widoku kontroler jako zmienna globalna
var testEvent = [String]()

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się