View controller presented with performSegue is never deallocated if the transition is cancelled

Originator:poppoppop
Number:rdar://23763386 Date Originated:04-Dec-2015 11:01 AM
Status:Open Resolved:
Product:iOS SDK Product Version:9.1
Classification:Serious Bug Reproducible:Always
 
Summary:
View controller presented with performSegue is never deallocated if the transition is cancelled

Steps to Reproduce:
1. Create a modal segue between two view controllers in a storyboard
2. Create a pan gesture recogniser that performs that segue using a custom animation controller and an interaction controller
3. When the gesture recogniser ends call cancelInteractiveTransition on the interaction controller

Expected Results:
The transition is cancelled and the view controller that was created is released and deallocated

Actual Results:
The transition is cancelled but the presented view controller is retained. Repeated calls to the segue continue to create new instances of the view controller that are never released.

Regression:
iOS 9.1 on device and in simulator

Notes:
See sample project at https://github.com/prendio2/SegueMemoryTest

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com 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!