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)}
- (BOOL)presentViewController:(UIViewController *)controller options:(nullable NSDictionary<NSString *, id> *)options animated:(BOOL)animated sender:(nullable id)sender completion:(void (^)(void))completion { NSMutableDictionary<NSString *, id> *customOptions = options.mutableCopy; if ([controller isKindOfClass:PSPDFNoteAnnotationViewController.class]) { customOptions[PSPDFPresentationCloseButtonKey] = @NO; } return [super presentViewController:controller options:customOptions animated:animated sender:sender completion:completion];}