UIPageViewController se bloquea cuando se voltea demasiado rápido durante la memoria baja

Tuve algunos problemas de memoria debido a la plantilla de Xcode para un UIPageViewController que almacena en caché todos los datos de la página, así que lo cambié para cargar las páginas dinámicamente, así que ahora cuando mi aplicación recibe una advertencia de memoria baja, libera la memoria para la página que no se muestra, pero si el usuario está hojeando las páginas muy rápido tocando el borde de la pantalla, aún se bloquea. Supongo que esto se debe a que no se puede liberar la memoria lo suficientemente rápido cuando se llama didReceiveMemoryWarning. Si el usuario está volteando lentamente, funciona bien. Limité la velocidad a la que el usuario puede voltear páginas, pero aún así sucede. Quiero poder liberar la memoria cada vez que se gire la página y no tener que esperar una advertencia de memoria baja. Estoy usando ARC. ¿Hay alguna forma de hacer esto? ¿O qué más puedo hacer para prevenir esto? Gracias.

EDITAR:

<code>(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
    NSUInteger index = [self indexOfViewController:(SinglePageViewControllerSuperclass *)viewController];
    if ((index == 0) || (index == NSNotFound)) {
        return nil;
    }

    index--;
    return [self viewControllerAtIndex:index];
} 

(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
    NSUInteger index = [self indexOfViewController:(SinglePageViewControllerSuperclass *)viewController];
    if (index == NSNotFound || index == MAX_PAGE_INDEX) {
        return nil;
    }

    return [self viewControllerAtIndex:++index];
}
</code>

Respuestas a la pregunta(5)

Su respuesta a la pregunta