Zurück von einem Controller zu einem vorherigen

8

Ich versuche, von meinem UIViewController zurück zu meinem UITableViewController zu wechseln, aber es funktioniert anscheinend nicht so, wie ich es möchte. Ich habe meine Benutzeroberfläche von Anfang an mit Storyboards erstellt, so dass ich nicht wirklich von Code zu Code wechseln möchte. Bis jetzt habe ich nur meine Views per sergues gedrückt, die mit Storyboards einfach zu implementieren sind. Aber als ich versuchte, zu meinen vorherigen Ansichten zurückzukehren, wird ein neuer ViewController implementiert, so dass alle meine Daten, die ich in der alten gespeichert habe, "verloren" sind.

Eigentlich gibt es keinen Code, den ich Ihnen vorstellen könnte (wegen der Sergae), aber die Situation ist:

- & gt; Ich habe ein MutableArray, das Sachen in meinem UITableView speichert.

- & gt; Benutzer tippt auf die Scan-Schaltfläche, scannt ein neues Objekt, das in mein Array importiert werden soll.

- & gt; Wenn ich versuche, zu meinem tableView zurück zu gelangen, gibt es einen neuen Controller, der mich bemerkt, ohne die Daten zu kennen, die ich in dem alten gespeichert habe.

Wie kann ich einfach zu meinem alten Controller zurückkehren und verhindern, dass immer ein neuer Controller erstellt wird?

Erstellt ein Sergue-Push immer einen neuen Controller?

(Die Frage mag einfach sein, aber ich bin neu bei diesem Thema. Ich habe einige Ergebnisse versucht, die von der Suchfunktion präsentiert wurden, aber keine funktionierte :()

/ edit: Das Popback-Problem wurde behoben, aber das Array-Füllen-Problem besteht immer noch. Code:

%Vor%

Daten in sharedGS.strEAN ("83274572354", d. h.) Daten in listArray (null)

    
blaluma 20.02.2012, 14:30
quelle

2 Antworten

20

Sie drücken nicht zurück. Das erstellt eine neue Instanz der vorherigen Controller-Klasse. Du platzierst zurück. Sie können dies auf zwei Arten erreichen.

1: Geben Sie in code die folgende Anweisung ein, wenn Sie zu Ihrem tablet view controller zurückkehren möchten (pop).

[self.navigationController popViewControllerAnimated:YES];

2: Wenn Sie es im Storyboard machen möchten, müssen Sie die folgende benutzerdefinierte Segmentklasse implementieren:

Implementierung

%Vor%

und Kopfzeile

%Vor%

Platzieren Sie diese Methode in Ihrem UIViewController, um eine Eigenschaft zurück auf Ihren UITableViewController zu setzen:

%Vor%     
T.J. 20.02.2012, 15:15
quelle
3

@ T.J Wenn diese Methode übernommen wird "2: Wenn Sie es im Storyboard machen möchten, müssen Sie die folgende benutzerdefinierte Segmentklasse implementieren:

Implementierung "

und nach das Dokument der folgenden, "Konfigurieren des Ziel-Controllers, wenn eine Sequenz ausgelöst wird iOS führt beim Auslösen eines Segments die folgenden Aufgaben aus:

Es instanziiert den Zielansicht-Controller. Es instanziiert ein neues Überleitungsobjekt, das alle Informationen für den auslösenden Abschnitt enthält. Hinweis: Ein Popover-Segment bietet auch eine Eigenschaft, die den Popover-Controller identifiziert, der zum Steuern des Zielansicht-Controllers verwendet wird. Sie ruft die prepareForSegue: sender: -Methode des Quellansicht-Controllers auf, wobei das neue segue-Objekt und das Objekt, das den segue ausgelöst hat, übergeben werden. Es ruft die perform-Methode des Segments auf, um den Ziel-Controller auf den Bildschirm zu bringen. Das tatsächliche Verhalten hängt von der Art des ausgeführten Übergangs ab. Zum Beispiel teilt ein modaler Übergang dem Quellenansicht-Controller mit, dass er den Zielansicht-Controller darstellt. Es gibt das Objekt "segue" frei und der Übergang ist abgeschlossen. "

Er instanziiert den präsentierenden viewController noch einmal, dann wird dealloc nach der overrid-Methode "perform" aufgerufen. So ist es besser, die erste Methode, die Sie eingereicht haben, oder die Methode des Delegaten nach das Dokument .

Danke

    
Jenus Dong 12.11.2014 03:15
quelle