Как конвертировать TVML View в UIViewController - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть 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, который находится в быстром?

...