Customize View Control Modals on iOS

There are a lot of view controllers presented modally in PSPDFKit, and you have the ability to customize the behavior and look of all of them. So in this article, you will learn how to achieve the exact behavior and look you desire.

Hide the Close Button

We automatically add a close button to all modally presented view controllers. If you don’t want that button or if you want to customize this behavior, you hide the close button in two different ways (detailed below).

Hide the Close Button for PSPDFViewController

To hide the close button on a modally presented PSPDFViewController, set the closeBarButtonItem(opens in a new tab) of the navigationItem(opens in a new tab) to nil.

Hide the Close Button on a View Controller Presented from PSPDFViewController

To hide the close button on a view controller presented from PSPDFViewController, override presentViewController:options:animated:sender:completion:(opens in a new tab) in your PSPDFViewController subclass and edit the options dictionary to set PSPDFPresentationCloseButtonKey to false.

In the following code snippet, we hide the close button only for presented instances of PSPDFNoteAnnotationViewController(opens in a new tab). Be aware that if you hide the close button without adding a custom close button, there is no other way to dismiss the view controller:

override func present(_ controller: UIViewController, options: [String: Any]? = nil, animated: Bool, sender: Any?, completion: (() -> Void)? = nil) -> Bool {
var customOptions = options
if controller is PSPDFNoteAnnotationViewController {
customOptions?[PSPDFPresentationCloseButtonKey] = false
}
return super.present(controller, options: customOptions, animated: animated, sender: sender, completion: completion)
}