2017-06-07 7 views
1

Ich versuche, Daten von einer Ziel-c passieren Viewcontroller zu einem Swift Viewcontroller und ich erhalte diesen Fehler in meinem Objective-C-Controller:Passing Daten von Objective-C Viewcontroller zu Swift Viewcontroller

Eigenschaft 'Typ' gefunden, nicht auf Objekt vom Typ 'UIViewController'

Mein Objective-C-Code:

UIViewController *mainController = [self.storyboard instantiateViewControllerWithIdentifier:@"IdentitySelfieViewController"]; 
mainController.type = "passport"; 
[self.navigationController pushViewController:mainController animated:YES]; 

Import in die Bridging-Header-Datei:

#import "PassportViewController.h" 

und schafften den entsprechenden String in meinen Swift-View-Controller

let type = "" 

Vielen Dank für jede Hilfe

+0

Sie müssen ein Objekt aus der importierten Klasse Objective-C erstellen. –

+0

Oh ... darf ich Sie bitten, mir ein Beispiel zu geben? Danke – Isabelle

+0

Ich habe es seit einem Jahr nicht getan, aber ich denke, es ist etwas wie das folgende. lass es passInstance: PassportViewController = PassportViewController() –

Antwort

1

Die Lösung für Ihr Problem, wie das ist:

Zuerst in Swift Controller fügen Sie die @Objc vor dem Klassenschlüsselwort wie folgt hinzu:

@objc class ViewController: UIViewController 

und dass in diesem Controller eine Variable so erstellen:

public var myValue:String = "" 

Danach in Ihrem Objective-C Viewcontroller Sie diese und Sie daran, dies ist sehr wichtig zu halten importieren müssen.

#import "TargetName-Swift.h" 

TargetName sollte durch Ihren Zielnamen ersetzt werden. Danach können Sie einfach die Variablen dieses Swift Controllers wie folgt aufrufen:

+0

Sie sind mein Held :) Vielen Dank für Ihre Zeit und für Ihre Antwort. – Isabelle

+0

Also meine Variable wird erkannt; es scheint, ich kann es von Objective-C nach Swift weitergeben. Wie würden Sie den Wert in Ihrem Swift Controller abrufen? Anstatt dies zu setzen: public var myValue: String = "" - Nochmals vielen Dank – Isabelle

+0

Es ist sehr einfach nach der Übergabe des Wertes können Sie nur die Variable in der Swift Controller, wird es die Werte, die Sie bestanden haben. –

Verwandte Themen