2016-06-16 3 views
0

私はObjective-CのアプリをSwiftに書き直しています。 Swiftでこれらを書き直すことなく、私の新しいアプリケーションで私の以前のアプリから古いものを使用できるかどうか疑問に思っていました。 可能ですか?どのように2つのUIViewControllersを迅速に1つの目的で対処するには?..?

+0

あなたはそれらをミックスすることができるはずです。結局のところ 'UIViewController'です。これはCocoaTouchフレームワークです。使用する言語に依存しません。 – Larme

答えて

1

はい、ブリッジヘッダーを使用できます。

Objective-Cファイルを迅速なプロジェクトにインポートすると(プロジェクトMyAppと呼ばせてください)、ブリッジヘッダーMyApp-Bridging-Header.hを作成するかどうか尋ねる必要があります。質問しない場合は、いつでも自分で作成することができますが、そうする場合は、プロジェクトのBuild SettingsにあるSwift Compiler - Code Generator -> Objective-C Bridging Headerの下にそれを含めるようにしてください。このファイル内には、例えば、あなたのObjective-Cファイルのインポートを書くことができます。:

#import "MyUIViewController.h" 

彼らは他のスウィフトのファイルと互換性があるように、これは、プロジェクトにインポートします。 次に、あなたの迅速なクラスであなたが他の迅速なクラスでしょうあなたのようなことObjective-Cのビューコントローラを参照することができ、例えば:

let myUIViewController = MyUIViewController() 
0

はい、それは私も私の以前のプロジェクトと私と協力

に動作します私の古いObjective-CコードをSwiftプロジェクトにインポートしましたSwiftクラスからそのObjective-C UIViewControllerにアクセスするためのブリッジヘッダー。 StoryBoard UIviewController内にObjective-C UiViewcontrollerクラスを直接割り当て、UIViewController.ifのためにコーディネートを再度書き直す必要はありません。Swift Controllerクラス内のObjective-Cクラスにアクセスするには、最初にBridgeヘッダーファイルを作成する必要があります。

enter image description here

//In Swift Controller you can call your Objective-C Class 
let myView = MyController() // This is Objective-C controller 
myView.updatemyProfile() // Can call function like Objective-C here 
関連する問題