Ich hoffe wirklich, dass jemand helfen kann, da ich glaube, dass ich jede Option ausprobiert habe, die ich auf SC finden konnte. Zuerst tut mir leid, wenn der Code ist chaotisch oder das ist eine dumme Frage, Entwicklung ist nicht mein stärkster Punkt:/Weitergabe von Daten über den Navigations-Controller - Objective C
Grundsätzlich habe ich eine iPad-spezifische App im Storyboard erstellt, ich habe eine Reihe von View-Controller und Szenen und eingebettet haben ein Navigationscontroller. Die App ist sehr linear und bewegt sich nur durch jeden Bildschirm in der Reihenfolge (Sie können nicht innerhalb der App herumspringen).
Auf dem ersten Bildschirm gibt es 2 Auswahlen, die der Benutzer über 2 Tasten vornehmen kann. Diese zeigen jeweils ein Bild an und die Bilder, die sie auswählen, müssen auch auf jedem der nächsten Bildschirme angezeigt werden.
Wenn ich kein Navigations Controller eingebettet hatte es funktionierte ganz gut durch die folgenden Aufruf:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"passSegue"] && (parentImage.hidden == NO) && (parentImage2.hidden == NO)) {
ViewControllerGirl2 * vc = [segue destinationViewController];
UIImage *imageView = [UIImage imageWithContentsOfFile:[[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/1.png"]];
UIImage *imageView2 = [UIImage imageWithContentsOfFile:[[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/2.png"]];
vc.parentImage = imageView;
vc.parentImage2 = imageView2;
}
Aber jetzt habe ich meine Bilder nicht mehr auf dem nächsten Bildschirm erscheinen in einem UINavigationController eingebettet. Ich habe die vorgeschlagenen Methoden ausprobiert:
UINavigationController *navController = [segue destinationViewController];
ViewControllerGirl2 *vc = (ViewControllerGirl2 *)navController.topViewController;
Aber jede Weise, die ich versuchte, diese Vorschläge zu implementieren, stürzte es ab.
Jede Hilfe würde sehr geschätzt werden, da ich seit 2 Tagen fest auf diesem festgefahren bin.
Was sagt es, wenn es abstürzt? Ich meine die Debug-Ausgabe, wenn überhaupt? –
Hallo @EugeneZhenyaGordin heißt es: App beenden aufgrund nicht abgefangene Ausnahme 'NSInvalidArgumentException', Grund: '- [ViewControllerGirl2 topViewController]: Unbekannter Selektor zum Beispiel 0x7c9c13b0 gesendet' – Aggie
so ist die destinationViewController ein UINavigationController oder ViewControllerGirl2 für Sie? schau im debug durch einen breakpoint, weil ich denke, du machst das falsche Casting dort .... der Fehler sagt dir, dass ViewControllerGirl2 nicht über die Methode topViewController verfügt, also nehme ich an, dass destinationViewController bereits ViewControllerGirl2 ist –