2016-06-11 4 views
1

tvOSアプリケーションでネイティブビュー/コントローラとTVMLの両方を使用できますか? TVMLを使用すると、通常のView Controllerの代わりに「App Controller」を設定する必要があるようです。 tvOSアプリケーションでTVMLとネイティブコンポーネントの両方をどのように使用できますか?tvOSアプリケーションでネイティブとTVMLの両方を使用するにはどうすればいいですか?

答えて

3

はい、あなたは同じアプリでネイティブとTVMLの両方を使用することができます。 App DelegateのevaluateAppJavaScriptInContextメソッドにクラスオブジェクトを登録することができます。

func appController(appController: TVApplicationController, evaluateAppJavaScriptInContext jsContext: JSContext) 
    { 

     jsContext.setObject(TestClass(), forKeyedSubscript: "testClassObj") 
    } 

TestClassはTestClassExportプロトコルを採用する必要があります。 (私のTestClassをあなたはまた、スウィフトにそれを書くことができ客観Cである。)

@protocol TestClassExport <JSExport> 

- (NSString*)log:(NSString*)string; 

@end 

@interface TestClass : NSObject <TestClassExport> 

-(NSString*)log:(NSString*)string; 

@end 

今、あなたはJavascriptからテストクラスLogメソッドを呼び出すことができます。

testClassObj.log JSから( 'コール');

コントローラを表示する場合は、TVApplicationControllerでコントローラをプッシュするメソッドを実装できます。

[_tvAppController.navigationController pushViewController:controller animated:YES completion:nil]; 

より詳細 - https://forums.developer.apple.com/thread/18430

ために、このリンクをチェック
関連する問題