这是一个错误还是我错过了什么?(Cast UISplitViewController)


class DocumentNavigationController: UINavigationController {
    public var documentSplitViewController: DocumentSplitViewController? {
        return splitViewController as? DocumentSplitViewController
    }
}

在也实现 UISplitViewControllerDelegate 的子类中访问它。

func primaryViewController(forExpanding splitViewController: UISplitViewController) -> UIViewController? {
    ...
    print("Before:  Split- (splitViewController) DocSplit- (documentSplitViewController)")
    if let docSplit = splitViewController as? DocumentSplitViewController {
        print("Cast successful")
    } else { print("Cast failed")}
    print("After:  Split- (splitViewController) DocSplit- (documentSplitViewController)")
    ...
}

输出:

Before:  Split- <PDF_Express.DocumentSplitViewController: 0x7fcf9050fc60> DocSplit- nil
Cast successful
After:  Split- <PDF_Express.DocumentSplitViewController: 0x7fcf9050fc60> DocSplit- nil

我的预期结果是 DocSplit 在打印语句中不是零。 我不明白为什么函数没有正确转换,但我的本地可选绑定是。

primaryViewController中,所引用的splitViewController是传递到方法中的documentSplitViewController引用类的属性。我猜它们实际上不是一回事。

相关内容

  • 没有找到相关文章

最新更新