我正在将Apple的示例Custom View Controller Presentations and Transitions(特别是AAPLCustomPresentationController)转换为Swift,但我偶然发现了一个问题。
他们在他们的preferredContentSizeDidChangeForChildContentContainer方法(第190行)中进行了检查
- (void)preferredContentSizeDidChangeForChildContentContainer:(id<UIContentContainer>)container
{
[super preferredContentSizeDidChangeForChildContentContainer:container];
if (container == self.presentedViewController)
[self.containerView setNeedsLayout];
}
在Swift(3.0)中,我尝试了
if container == (self.presentedViewController as UIContentContainer)
但是我得到了错误
二进制运算符'=='不能应用于两个'UIContentContainer'操作数
如何在Swift中执行此检查?
最佳答案
如果两个对象都是UIViewControllers,也许在比较之前将它们强制转换为该类型?
if presentedViewController as? UIViewController == container as? UIViewController {
// true
}