2016-03-29 8 views
1

Ich habe 2 View-Controller, VCA und VCB. Ich übertrage von VCA zu VCB mit presentViewController(VCB, animated: true, completion: nil) und kam mit dismissViewControllerAnimated(true, completion: nil) in VCB zurück. Dieser Übergang wird von einer benutzerdefinierten TransitionManager Instanz verwaltet, wobei sowohl VCA als auch VCB ihre eigene TransitionManager Instanz als ihre transitioningDelegate haben.Warum können Sie den modalPresentationStyle während des Übergangs nicht einstellen?

Ich möchte VCB über die Oberseite des VCA so in VCB ‚s vorgestellt werden initialiser ich hinzufügen:

convenience init() { 
    self.init() 
    modalPresentationStyle = .OverFullScreen 
} 

Dies funktioniert.

Wenn ich jedoch modalPresentationStyle = .OverFullScreen von VCB ‚s initialiser entfernen, und versuchen Sie es in den UIViewControllerAnimatedTransitioning Delegierten in der TransitionManager Klasse zu setzen, wie

func animateTransition(transitionContext: UIViewControllerContextTransitioning) { 
    let transitionContext: UIViewControllerContextTransitioning! 
    let toVC = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey)! 
    toVC.modalPresentationStyle = .OverFullScreen 

    // do animation ... 
} 

folge der Effekt funktioniert nicht. Warum ist das der Fall, bitte?

bearbeiten

Es scheint, dass modalPresentationStyle.rawValue 0 (.FullScreen) in VCB 's viewDidLoad und dann 5 (dem gewünschten Wert, OverFullScreen) in VCB' s viewDidAppear.

Antwort

0

Apple Dokumentationsstatus Um den Übergangstyp zu ändern, müssen Sie diese Eigenschaft festlegen, bevor Sie den Ansichtscontroller präsentieren.

+1

Für zukünftige Benutzer ist dieses Zitat von: https://developer.apple.com/documentation/uikit/uiviewcontroller/1621388-modaltransitionstyle –

Verwandte Themen