2016-06-11 4 views
1

Ist es möglich, native Ansichten/Controller und TVML in einer tvOS App zu verwenden? Es scheint, dass die Verwendung von TVML erfordert, dass Sie einen "App-Controller" anstelle eines normalen View-Controllers einstellen. Wie können Sie sowohl TVML als auch native Komponenten in einer tvOS App verwenden?Wie kann man sowohl native als auch TVML in einer tvOS App verwenden?

Antwort

3

Ja, Sie können Native und TVML in derselben App verwenden. Sie können Ihr Klassenobjekt in der evaluateAppJavaScriptInContext-Methode von App Delegate registrieren.

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

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

Ihre Testclass sollte das TestClassExport Protokoll erlassen. (My Testclass ist in Objective C. Sie es in Swift auch schreiben kann.)

@protocol TestClassExport <JSExport> 

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

@end 

@interface TestClass : NSObject <TestClassExport> 

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

@end 

Jetzt können Sie die Testklasse Log-Methode aus Javascript aufrufen:

testClassObj.log ('Call von JS ");

Wenn Sie einen beliebigen Controller anzeigen möchten, können Sie die Methode implementieren, die den Controller in den TVApplicationController verschiebt.

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

prüfen Link für mehr Details- https://forums.developer.apple.com/thread/18430

Verwandte Themen