我正在将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
}

10-07 19:51