Outline tree

There are two options to working with an outline tree. First is using a UI component that provides tools to set a bookmark or display the outline. Second is an API guide to programmatically read outline items.

Display outlines & bookmarks on iOS

A document outline, or table of contents, demonstrates how the PDF document is organized and helps users see the overall picture. The PTOutlineViewController class shows the document outline (table of contents) that can be used to navigate through the document being viewed by a PTPDFViewCtrl by tapping on a bookmark item.

Apryse Docs Image

The outline control is part of the Tools library, so make sure you have added the Tools library to your project.

Show an outline view controller

To create a new outline view controller instance and display it from another view controller, supply a PTPDFViewCtrl instance to the PTOutlineViewController designated initializer:

1// Initialize outline view controller with a PTPDFViewCtrl instance.
2let outlineViewController = PTOutlineViewController(pdfViewCtrl: pdfViewCtrl)
3
4// Set the current view controller as the outline view controller's delegate.
5outlineViewController.delegate = self
6
7let navigationController = UINavigationController(rootViewController: outlineViewController)
8if ( UIDevice.current.userInterfaceIdiom == .pad ) {
9 navigationController.modalPresentationStyle = .popover
10 navigationController.popoverPresentationController?.barButtonItem = outlineButton
11}
12
13self.present(navigationController, animated: true, completion: nil)

The outline view controller must be pushed onto a navigation controller's stack before being shown.

Presenting on iPads:

The outline view controller is designed to be presented in a popover on iPads. To do so, you must provide the PTOutlineViewController's UIPopoverPresentationController with either:

OR

as in the example above.

You can set a delegate to be notified by the outline view controller when outline bookmarks are selected with the PTOutlineViewControllerDelegate protocol. (See the CompleteReader example for usage of an PTOutlineViewController.)

Did you find this helpful?

Trial setup questions?

Ask experts on Discord

Need other help?

Contact Support

Pricing or product questions?

Contact Sales