--> Ich weiß, das ist ein langer Text, aber ich hoffe es macht sich trotzdem jemand die Mühe, es durchzulesen und evtl. zu antworten <--
Und zwar habe ich einen tableViewController, der zu einer detailView führt. In der detailView wird ein MutableArray mit verschiedenen Strings gefüllt, je nachdem welche Cell angeklickt wurde. Das klappt auch super. Wenn ich nun aber in meiner NavigationBar auf Zurück klicke und eine andere Cell auswähle, wird der MutableArray geleert und mit dem anderen String gefüllt. Das passiert nicht, wenn ich per TabBar die View wechsle und zurück gehe!
Ich suche schon seit ein paar Tagen nach einer Lösung, habe schon verschiedenste Methoden ausprobiert, den MutableArray zu deklarieren (auch static). Das hat alles leider nicht geklappt.
Dann habe ich jetzt versucht, die Strings in eine property list zu packen, weil ich sie sowieso speichern wollte, aber da taucht genau dasselbe Problem auf.
Momentan fülle ich testweise den Array und die Plist. Der Array ist bei mir als static implementiert:
Die Plist habe ich folgendermaßen deklariert:
Alles anzeigen
So weit, so gut!
Wenn ich dann in meiner detailView auf einen Button klicke, wird folgende Funktion aufgerufen: (ein Ausschnitt)
Alles anzeigen
Zuerst checke ich, ob der Name der Cell, die ich angeklickt habe, überhaupt etwas beinhaltet.
Dann schaue ich, welche Cell angeklickt wurde. (Das ganze wiederholt sich ein paar mal leicht verändert).
Danach schaue ich, ob der String schon im Array/Plist vorhanden ist, wenn ja entferne ich ihn, wenn nein füge ich ihn hinzu.
Das klappt auch alles super, nur wenn ich jetzt die View über den Zurück Button verlasse, wird der Array und Plist geleert und ich kann mir einfach nicht erklären, warum?? ?(
MfG Johannes
Und zwar habe ich einen tableViewController, der zu einer detailView führt. In der detailView wird ein MutableArray mit verschiedenen Strings gefüllt, je nachdem welche Cell angeklickt wurde. Das klappt auch super. Wenn ich nun aber in meiner NavigationBar auf Zurück klicke und eine andere Cell auswähle, wird der MutableArray geleert und mit dem anderen String gefüllt. Das passiert nicht, wenn ich per TabBar die View wechsle und zurück gehe!
Ich suche schon seit ein paar Tagen nach einer Lösung, habe schon verschiedenste Methoden ausprobiert, den MutableArray zu deklarieren (auch static). Das hat alles leider nicht geklappt.
Dann habe ich jetzt versucht, die Strings in eine property list zu packen, weil ich sie sowieso speichern wollte, aber da taucht genau dasselbe Problem auf.
Momentan fülle ich testweise den Array und die Plist. Der Array ist bei mir als static implementiert:
Die Plist habe ich folgendermaßen deklariert:
Quellcode
- NSString *errorDescription = nil;
- NSPropertyListFormat *format = NULL;
- NSString *plistPath;
- NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES)objectAtIndex:0];
- plistPath = [rootPath stringByAppendingPathComponent:@"Data.plist"];
- if(![[NSFileManager defaultManager]fileExistsAtPath:plistPath])
- {
- plistPath = [[NSBundle mainBundle]pathForResource:@"Data" ofType:@"plist"];
- }
- NSData *plistData = [[NSFileManager defaultManager]contentsAtPath:plistPath];
- NSDictionary *temporaryDictionary = (NSDictionary *) [NSPropertyListSerialization propertyListFromData:plistData mutabilityOption:NSPropertyListMutableContainersAndLeaves format:format errorDescription:&errorDescription];
- if (!temporaryDictionary)
- {
- NSLog(@"Datei konnte nicht gelesen werden.");
- }
- dict1 = [temporaryDictionary objectForKey:@"Item 1"];
So weit, so gut!
Wenn ich dann in meiner detailView auf einen Button klicke, wird folgende Funktion aufgerufen: (ein Ausschnitt)
Quellcode
- if([name_Test isEqualToString:@""])
- {
- NSLog(@"Leer");
- }
- else
- {
- if([name_Test isEqualToString:@"X"])
- {
- if([favoritenArrayDetail containsObject:@"X"])
- {
- [favoritenArrayDetail removeObject:@"X"];
- NSLog(@"%@ existieren schon im Array, wird entfernt.", name_Test);
- NSLog(@"Favoriten Array: %@", favoritenArrayDetail);
- [dict1 removeObjectForKey:@"X"];
- NSLog(@"Objekt existiert bereits in plist, wird entfernt. \nPlist: %@", dict1);
- }
- else
- {
- [favoritenArrayDetail addObject:name_Test];
- NSLog(@"Favoriten Array: %@", favoritenArrayDetail);
- [dict1 setObject:@"X" forKey:@"X"];
- NSLog(@"Plist: %@", dict1);
- }
- }
Zuerst checke ich, ob der Name der Cell, die ich angeklickt habe, überhaupt etwas beinhaltet.
Dann schaue ich, welche Cell angeklickt wurde. (Das ganze wiederholt sich ein paar mal leicht verändert).
Danach schaue ich, ob der String schon im Array/Plist vorhanden ist, wenn ja entferne ich ihn, wenn nein füge ich ihn hinzu.
Das klappt auch alles super, nur wenn ich jetzt die View über den Zurück Button verlasse, wird der Array und Plist geleert und ich kann mir einfach nicht erklären, warum?? ?(
MfG Johannes