3D Touch Preview gets stuck if `unregisterForPreviewingWithContext:` is called while preview is on screen

Originator:RichWChan
Number:rdar://22795259 Date Originated:21-Sep-2015
Status:Open Resolved:
Product:iOS Product Version:9.0
Classification:UI/Usability Reproducible:Always
 
Summary:
While triggering a 3D Touch preview on a registered view, if `unregisterForPreviewingWithContext:` is called on the context associated with the view that the preview was triggered from, the preview will be stuck on screen and cannot be dismissed by the user.

Steps to Reproduce:
1. call `registerForPreviewingWithDelegate:sourceView:` on a view.
2. while triggering the Peek preview, call `unregisterForPreviewingWithContext:` with the context received from the call in Step 1.
3. the Peek preview triggered earlier will remain on screen and cannot be dismissed.

Expected Results:
The preview should be dismissed when `unregisterForPreviewingWithContext:` is called. Alternatively, there should be a way to inspect whether a context is being used for an ongoing Peek -- so developers can programmatically determine whether we should avoid calling unregister.

Actual Results:
The Peek preview is stuck forever with no way for the user to dismiss.

Version:
iOS 9.0

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!