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
引用类的属性。我猜它们实际上不是一回事。