In the WWDC24 session Evolve your document launch experience, it is mentioned that apps linked against the iOS 17 SDK would not get the new document launch experience. However, I found that the new document browser is active in my iOS 17 app when installed from the App Store on iOS 18, without rebuilding it.
This (along with other iOS 18 UIKit behavioral regressions) renders the app unusable when running under iOS 18. To be clear, my app uses a UIDocumentViewController
as the root view controller of a UINavigationController
and is implemented primarily in Obj-C.
I don't want to show the new document browser to users at app launch time. The current behavior of my app is that it always launches to either the current document or a new document and then allows the user to open a new document using the document picker if desired (this was accomplished by invoking the action associated with the Documents
button on iOS 17; see related feedback FB13418866: ER: UIDocumentViewController should provide API to allow customization of Documents
button behavior).
The new UIDocumentViewController
behavior is problematic because it has replaced the Documents
button with a backAction
that moves the user into the new document browser with no way to back out, aside from picking a document or creating a new document. Previously, the user could choose Cancel to exit the document picker and get back to the currently-open document without choosing a new one.
While the new UIDocumentViewController
behavior looks nice for apps like Swift Playgrounds, it is problematic for apps that want to take advantage of the UIDocument
infrastructure without forcing the user to deal with a more complicated browser-centric app UI.
I would expect there to be some way to maintain the previous behavior as it existed on iOS 17, but I don't see any way to do this. Suggestions welcome. Thanks!