检查UIContentContainer是否是Swift中的ViewContoller

时间:2016-06-30 13:42:11

标签: ios swift uiviewcontroller uikit swift3

我正在将Apple的样本Custom View Controller Presentations and Transitions(特别是AAPLCustomPresentationController)翻译成Swift,我偶然发现了一个问题。

在他们的preferredContentSizeDidChangeForChildContentContainer方法(第190行)中,他们检查

Run(activityTestList);

在Swift(3.0)中,我试过

- (void)preferredContentSizeDidChangeForChildContentContainer:(id<UIContentContainer>)container
{
    [super preferredContentSizeDidChangeForChildContentContainer:container];

    if (container == self.presentedViewController)
        [self.containerView setNeedsLayout];
}

但是我收到了错误

  

二元运算符&#39; ==&#39;不能应用于两个UIContentContainer&#39;操作数

如何在Swift中执行此检查?

1 个答案:

答案 0 :(得分:4)

如果两个对象都是UIViewControllers,可能在比较之前将它们转换为该类型?

if presentedViewController as? UIViewController == container as? UIViewController {
    // true
}