wie erstelle ich eine Endlosschleife im Navigationscontroller wie eine Instagram-Anwendung auf dem iPhone?

StackOverflow https://stackoverflow.com//questions/12707531

Frage

ich entwickle eine Anwendung, die viele Unteransichten wie den Ablauf von haben würde instagram und picyou art von Social-Networking-Apps Der Ablauf ist Bild-> Detailbild-> beliebiger Kommentar-> Benutzername-> Folgen-> Benutzername-> Bild Benutzername-> Bild-> Detailbild-> beliebiger Kommentar-> Benutzername-> Folgen-> Benutzername-> Bild Benutzername-> verdammt, das ist unendlich hört nie auf.....

und bekommt nie eine Speicherwarnung oder stürzt durch Speicherprobleme ab...

ich verwende den Navigationscontroller, aber nach einiger Zeit der Navigation, in der einige Viewcontroller geändert wurden, erhalte ich einen Fehler wie diesen *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Pushing the same view controller instance more than once is not supported (<ViewController: 0x6d97110>)'

ich möchte dasselbe tun, wenn Sie zurückdrücken, erhalten Sie auch alle Daten zurück.haben Sie eine Idee, wie Sie das machen sollen.?

War es hilfreich?

Lösung

UINavigationController unterstützt dieses von Ihnen beschriebene Verhalten automatisch.Speichereffizient und potenziell unendlich.Jedes Mal, wenn Sie von einem Teil Ihrer App zum nächsten wechseln möchten, verwenden Sie einfach einen ähnlichen Code.

ViewController *vc = [[ViewController alloc] init];
//customize ViewController
[self.navigationController pushViewController:vc animated:YES];

Wenn Sie also von einem Foto zu einer Fotodetailansicht wechseln möchten, drücken Sie einfach den Fotodetailansichts-Controller, wenn die Taste gedrückt wird.Selbst wenn Sie sich bereits in einem Fotodetailansicht-Controller befinden, können Sie einen anderen aus dieser Klasse pushen.Stellen Sie einfach sicher, dass Sie eine separate Instanz erstellen.Nach deinem Fehler zu urteilen, denke ich, dass das jetzt dein Problem ist.

Ich habe es auch am besten gefunden, einen benutzerdefinierten Initialisierer für diese Art von View-Controllern zu erstellen.Verwenden Sie für eine Fotodetailansicht so etwas wie.

-(id)initWithPhoto:(Photo*)photo;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top