TransitionFromView entfernt die vorherige Ansicht

8

Ich habe Probleme beim Verwenden von TransitionfromView beim Wechseln zwischen Ansichten in meiner App.

Einrichtung

Dies ist die grundlegende Konfiguration des View Controllers. Es hat zwei Ansichten darin. Ein MKMapView und ein UITableView. Wenn die Umschalttaste gedrückt wird, soll es Ansichten zwischen Karte und Tabelle wechseln.

Dies ist meine * .h-Datei

%Vor%

Die Tabellenansicht stammt also vom Storyboard, während Mapview im Programm erstellt wird.

Problem

%Vor%

Wenn ich von TableView aus MapView übergehe, ist der Wert der Tabellenansicht Null (0x0000000). Ich verstehe, dass das Verhalten von transitionfromview darin besteht, die Ansicht aus der übergeordneten Ansicht zu entfernen. Aber wenn ich versuche, die Tabellenansicht nach dem Übergang als Unteransicht hinzuzufügen, funktioniert sie nicht, da der Wert null ist. Also meine Frage ist, wie füge ich die Tabellenansicht nach dem Übergang, wenn die Ansicht nulled ist?

PS: Ich entschuldige mich, wenn das eine einfache Frage ist, aber ich bin neu in der iOS-Programmierung und habe versucht, in den Foren nachzuschauen, bevor ich diese Frage posten kann.

    
omgpython 08.01.2013, 15:58
quelle

3 Antworten

29

Aus den Dokumenten zu dieser Methode:

"Standardmäßig wird die Ansicht in fromView in der Ansichtshierarchie durch die Ansicht in toView ersetzt. Wenn beide Ansichten bereits Teil Ihrer Ansichtshierarchie sind, können Sie die Option UIViewAnimationOptionShowHideTransitionViews in den options-Parameter aufnehmen, um sie einfach auszublenden oder anzuzeigen . "

Wenn also beide Ansichten beibehalten werden sollen, fügen Sie die beaconMapView zur Ansichtshierarchie hinzu und fügen Sie die Option UIViewAnimationOptionShowHideTransitionViews hinzu.

    
rdelmar 08.01.2013, 18:23
quelle
2

Sie müssen einen separaten Verweis auf beaconTableView beibehalten oder es einfach als stark statt schwach deklarieren. Da beaconTableView als schwach deklariert wurde, weiß iOS 5+, dass es nicht mehr benötigt wird, sobald alle anderen Referenzen darauf entfernt wurden, in diesem Fall durch Entfernen aus der übergeordneten Ansicht.

    
nioq 08.01.2013 16:48
quelle
0

Entfernen Sie schwach, sonst wird die Ansicht freigegeben, sobald sie nicht mehr benötigt wird.

    
Andrea.Ferrando 07.04.2017 08:05
quelle