UIPageViewController Memory Management

Hello
I am looking for some help with memory management with UIPageViewController. I followed a RW tutorial on page views and have worked on an app that uses it extensively. My app allows you to flick through pages of an old book and zoom into the pages to see more detail.
The page view controller is bringing up a view controller with the picture you can zoom into it. The problem I am running into is that each time you scroll to the next page, more memory is used, and none of the views off screen get released. After a while of scrolling, the iPad runs out of memory and quits.
Here’s my code. Thanks for the help. :calling:

//
//  ManagePageViewController.swift
//

import UIKit

class ManagePage2ViewController: UIPageViewController {
    
    
    var photos = ["bk2-A", "bk2-B", "bk2-C", "bk2-D", "bk2-E", "bk2-F", "bk2-G", "bk2-H", "bk2-I", "bk2-J", "bk2-K", "bk2-L", "bk2-M", "bk2-Mc", "bk2-N", "bk2-O", "bk2-P", "bk2-Q", "bk2-R", "bk2-S", "bk2-T", "bk2-U", "bk2-V", "bk2-W", "bk2-Y", "bk2-1" , "bk2-2" , "bk2-3" , "bk2-4" , "bk2-5" , "bk2-6" , "bk2-7" , "bk2-8" , "bk2-9" , "bk2-10" , "bk2-11" , "bk2-12" , "bk2-13" , "bk2-14" , "bk2-15" , "bk2-16" , "bk2-17" , "bk2-18" , "bk2-19" , "bk2-20" , "bk2-21" , "bk2-22" , "bk2-23" , "bk2-24" , "bk2-25" , "bk2-26" , "bk2-27" , "bk2-28" , "bk2-29" , "bk2-30" , "bk2-31" , "bk2-32" , "bk2-33" , "bk2-34" , "bk2-35" , "bk2-36" , "bk2-37" , "bk2-38" , "bk2-39" , "bk2-40" , "bk2-41" , "bk2-42" , "bk2-43" , "bk2-44" , "bk2-45" , "bk2-46" , "bk2-47" , "bk2-48" , "bk2-49" , "bk2-50" , "bk2-51" , "bk2-52" , "bk2-53" , "bk2-54" , "bk2-55" , "bk2-56" , "bk2-57" , "bk2-58" , "bk2-59" , "bk2-60" , "bk2-61" , "bk2-62" , "bk2-63" , "bk2-64" , "bk2-65" , "bk2-66" , "bk2-67" , "bk2-68" , "bk2-69" , "bk2-70" , "bk2-71" , "bk2-72" , "bk2-73" , "bk2-74" , "bk2-75" , "bk2-76" , "bk2-77" , "bk2-78" , "bk2-79" , "bk2-80" , "bk2-81" , "bk2-82" , "bk2-83" , "bk2-84" , "bk2-85" , "bk2-86" , "bk2-87" , "bk2-88" , "bk2-89" , "bk2-90" , "bk2-91" , "bk2-92" , "bk2-93" , "bk2-94" , "bk2-95" , "bk2-96" , "bk2-97" , "bk2-98" , "bk2-99" , "bk2-100" , "bk2-101" , "bk2-102" , "bk2-103" , "bk2-104" , "bk2-105" , "bk2-106" ]
    var currentIndex: Int!
    override func viewDidLoad() {
        super.viewDidLoad()
        dataSource = self
        // 1
        if let viewController = viewPicture2ViewController(currentIndex ?? 0) {
            let viewControllers = [viewController]
            
            // 2
            setViewControllers(
                viewControllers,
                direction: .forward,
                animated: false,
                completion: nil
            )
        }
        
        
    }
    
    func viewPicture2ViewController(_ index: Int) -> Picture2ViewController? {
        guard let storyboard = storyboard,
            let page = storyboard.instantiateViewController(withIdentifier: "Picture2ViewController")
                as? Picture2ViewController else {
                    return nil
        }
        page.photoName = photos[index]
        page.photoIndex = index
        return page
    }
    
    override var prefersStatusBarHidden: Bool {
        return true
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
}

extension ManagePage2ViewController: UIPageViewControllerDataSource {
    
    func pageViewController(_ pageViewController: UIPageViewController,
                            viewControllerBefore viewController: UIViewController) -> UIViewController? {
        
        if let viewController = viewController as? Picture2ViewController,
            let index = viewController.photoIndex,
            index > 0 {
            return viewPicture2ViewController(index - 1)
        }
        
        return nil
    }
    
    func pageViewController(_ pageViewController: UIPageViewController,
                            viewControllerAfter viewController: UIViewController) -> UIViewController? {
        
        if let viewController = viewController as? Picture2ViewController,
            let index = viewController.photoIndex,
            (index + 1) < photos.count {
            return viewPicture2ViewController(index + 1)
        }
        
        return nil
    }
    
    // MARK: UIPageControl
    func presentationCount(for pageViewController: UIPageViewController) -> Int {
        return photos.count
    }
    
    func presentationIndex(for pageViewController: UIPageViewController) -> Int {
        return currentIndex ?? 0
    }
}