Animating with UIViewControllerTransitionCoordinator doesn't work first time

Number:rdar://38135706 Date Originated:March 5 2018, 12:25 PM
Status:Open Resolved:
Product:iOS + SDK Product Version:iOS 11.2
Classification: Reproducible:Always


When using the transitionCoordinator of a UINavigationController the first time a view controller is pushed onto the navigation stack, the supplied animations are either not performed animated or the transition is EXTREMELY fast. The animations in the following pops and pushes are performed animated.

Steps to Reproduce:

1. Create a subclass of UINavigationController.
2. Add a subview to the view of UINavigationController.
3. Set the subclass to be a delegate of itself.
4. Implement navigationController(:willShow:animated:) and use the animate(alongsideTransition:completion) function of the transition coordinators that resides on your navigation controller to perform an animation on the subview you added in step 2.
5. Run the app. Push a view controller onto the navigation stack. The animations you supplied to the transition coordinator are not performed animation - or are performed animation but extremly fast. This is a bit difficult to see. The following pops and pushes will perform your animations correctly.

See the attached example project.

Expected Results:

The animations are performed correctly the first time and the following times.

Actual Results:

The animations are not performed correctly during the first transition. See the attached example project.


iOS 11.2 and Xcode version 9.2 (9C40b). Tested on simulator and on device.


iOS 11.2 and Xcode version 9.2 (9C40b)


This is on iOS 11 only. Works fine on iOS 10.

Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!