Bild an einen anderen View Controller übergeben (Swift)

8

Ich versuche, ein von einem Benutzer hochgeladenes Bild von einem UIImageView zu einem anderen UIImageView auf einem anderen View Controller zu verschieben. Ich kann den Benutzer ein Bild hochladen lassen und es in der ersten UIImageView speichern lassen, aber nachdem er die Schaltfläche "Post" gedrückt hat, bleibt die UIImageView auf dem nächsten View-Controller leer.

Hinweis: browsingImage ist der Name der UIImageView auf dem zweiten View-Controller (Ziel UIImageView)

Jede Hilfe würde sehr geschätzt werden!

%Vor%     
auth private 23.07.2015, 00:28
quelle

4 Antworten

16

In prepareForSegue können Sie nicht auf @IBOutlet s des Zielansicht-Controllers zugreifen, da sie noch nicht eingerichtet wurden. Sie sollten das Bild einer Eigenschaft des Zielansicht-Controllers zuweisen und dann in viewDidLoad :

verschieben

Im Quellenansicht-Controller:

%Vor%

Im Zielansicht-Controller:

%Vor%     
vacawama 23.07.2015 00:47
quelle
1

Von Ihrer Beschreibung aus ist browsingImage im Ziel viewController, also in dieser Zeile

%Vor%

Sie übergeben die Zielbildansicht an die Quellbildansicht

    
Leo 23.07.2015 00:33
quelle
0

Zum Zeitpunkt der Segue ist Ihre UIImageView nicht initialisiert, so dass Sie ihr kein Bild zuweisen können. Die beste Vorgehensweise wäre, die UIImage zu übergeben und Ihre UIImageView in viewDidLoad .

Also in Ihrer ListPage -Klasse eine Eigenschaft vom Typ UIImage ändern Sie Ihre prepareForSegue -Zeile als

%Vor%

in viewDidLoad oder viewDidAppear Ihres Ziels viewController Sie werden so etwas tun

%Vor%     
Qazi 23.07.2015 00:55
quelle
0

IBOutlets sind in Ihrem aktuellen View-Controller nicht verfügbar. Die Steckdosen sind noch nicht initialisiert, da die zweite Ansicht noch nicht geladen ist .

Stattdessen können Sie in Ihrem zweiten viewController eine UIImage-Variable erstellen und ihr den Wert in prepareForSegue zuweisen.

Und in Ihrer zweiten viewController-Methode viewDidLoad weisen Sie diesen Wert Ihrem ImageView-Ausgang zu.

%Vor%

In Ihrem nächsten viewController deklarieren Sie eine Variable namens

%Vor%

In der viewDidLoad-Methode

%Vor%     
iPhoneDeveloper 06.11.2017 10:14
quelle