There seem to be a regression in QLPreviewController with iOS17, since it works in both iOS16(latest) and iOS18b3.
After following the steps (described below), using iOS17.X the QLPreviewController gets frozen up so all of it's top buttons are no tappable, although you can still draw on the canvas.
Steps to reproduce:
- Setup QLPreviewController to preview a single image in png format.
The QLPreviewController should be presented as the rootViewController of a UINavigationController.
- Present the UINavigationController that has the QLPreviewController as its rootViewController.
- Tap the Markup button.
- Pick the leftest tool from the PencilKit tools at the bottom.
- Draw a curvy long line from the bottom-right corner of the canvas, to the top-left corner of the canvas.
- Tap any of the top buttons.
Current: The top buttons are not tappable. Expected: The top buttons are tappable.
Any idea how to workaround/fix this issue?
Notes:
- The issue seems to be reproducible in iOS17, and isn't reproducible in iOS16 or iOS18b3 using Xcode 15.4 and Xcode 16b3.
- The issue is reproducible in both iOS17 Simulator or devices.
- The issue is reproducible in both UIKit and SwiftUI.
- Possible same issue was mentioned here: https://stackoverflow.com/questions/78090416/navigation-toolbar-buttons-stop-working-after-keyboard-is-shown-on-ios-17-sw
- I couldn't attach a sample project to here due to file format limitation, but you can use the project from this repository and use a png instead of a pdf: https://github.com/NilCoalescing/SwiftUI-Code-Examples/tree/main/QuickLook/SwiftUIQuickLookInUINavigationController
(code by Natalia Panferova)
- Attached is the image of the drawing done in iOS17.5 Simulator.