У меня есть UISplitViewController в моем приложении, и я хочу установить detailViewController, который я передаю из TVML ниже, это пример кода
func pushTVMLControllerinSwift(
_ appController: TVApplicationController)
-> @convention(block) (Any) -> () {
return {
// 1:
[weak appController] (detailController) in
print(detailController)
self.splitViewController?.viewControllers[1] = detailController as! UIViewController
}
}
Я сделал метод доступным для TVML
func appController(_ appController: TVApplicationController, evaluateAppJavaScriptIn jsContext: JSContext) {
let closure = pushTVMLControllerinSwift(appController)
let castedClosure = unsafeBitCast(closure, to: AnyObject.self)
jsContext.setObject(castedClosure,
forKeyedSubscript: "pushTVMLControllerinSwift" as NSCopying & NSObjectProtocol)
}
И я называю это из Javascript следующим образом:
swiftPushBlueVC(loadingDocument);
Я получаю ошибку:
Could not cast value of type 'IKDOMDocument' (0x10919bd28) to 'UIViewController' (0x116700bf8).
Это понятно.Но есть ли способ, которым я могу использовать tvml в подробном виде моего контроллера splitview, который находится в быстром?