2016-06-30 16 views
3

Ich übersetze Apples Beispiel Custom View Controller Presentations and Transitions (speziell die AAPLCustomPresentationController) in Swift, und ich bin in ein Problem gestolpert.Überprüfen Sie, ob UIContentContainer ist ViewContoller in Swift

In ihrer preferredContentSizeDidChangeForChildContentContainer Methode (Linie 190) sie überprüfen

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

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

In Swift (3,0), habe ich versucht,

if container == (self.presentedViewController as UIContentContainer) 

aber ich habe den Fehler

Binary Operator ' == 'kann nicht auf zwei' UIContentContainer 'Operanden angewendet werden

Wie kann ich diese Prüfung in Swift durchführen?

+0

'UIContentContainer' Protokoll entspricht nicht 'Equatable' Protokoll, so dass Sie nicht verwenden können == –

Antwort

3

Wenn beide Objekte UIViewControllers sind, können Sie sie als Typ vor dem Vergleich darstellen?

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

Vielen Dank! Hatte ein kleines Gehirn furzen. – jjatie