2016-05-23 11 views
-1

このxibを呼び出すコードがobjective-cで既に作成されたプロジェクトから実行されたswiftでコード化された新しいxibを作成しました。 swiftファイルから以前のobjective-cビューに文字列を渡すことが必要です。私はNSUserDafaultsで試したことがありますが、実際の運がないので、グローバル変数を作成して新しいコードを設定すると思っていましたが、問題はobj-cに慣れていないということです。これを達成するために私を手伝ってもらえますか?私は素早いコードを持っていて、文字列をobjective-cクラスに返すようにしたい

+1

NSUserDefaultsは文字列を共有するために機能しますが、対話的に取得したいUIViewController上に文字列プロパティを作成し、そのNSStringプロパティを素早く表示する際に初期化する必要がありますが、NSUserDefaultsへのリンクはswiftはあなたの問題を解決するのに役立ちますhttp://stackoverflow.com/a/25421987/3543861 –

+0

私の理解のために:SwiftコードからObjective-Cコードへの値渡しは本当に 'NSUserDefaults'を使って行いたいですか? –

+0

はい、私はそれは簡単だと思っていましたが、なぜそれがないのですか?@MSU_Bulldogなぜ文字列のプロパティなどを作るのですか? –

答えて

0

Objective-Cクラスでプロパティを割り当てて、それをあなたの素早いクラスに割り当てる方法は次のとおりです。あなたの迅速なクラスで次に

@property (nonatomic, strong) NSString *myString; 

、あなたのようなビューコントローラを提示する前に文字列を代入:.hファイル内(この例ではmyObjClassという名前の)あなたのOBJ-Cクラスで

NSStringのプロパティを宣言この:

let myObjClass = self.storyboard?.instantiateViewControllerWithIdentifier("myObjClass") as? MyObjClass 

// set its property 
myObjClass.myString = "I am passing a string from Swift to Obj-C!" 

self.navigationController?.pushViewController(myObjClass!, animated: true) 

だからあなたmyObjClass viewDidLoadメソッドでこれを呼び出すことができますし、それはあなたの文字列を印刷する必要があります:

-(void) viewDidLoad { 

    NSLog(@"My String: %@",self.myString); 

} 
+0

さて、私はそれが、アクションを実行し、値を期待しているカスタムセルであるので、Obj-cクラスにはviewDidLoadメソッドがありません。 viewDidLoadに相当するものはありますか? –

+1

あなたはobj-cクラスの任意の場所でそのプロパティにアクセスできます.... –

関連する問題