Agregar QLPreviewController como subvista no carga PDF

Estoy tratando de agregar una vista de QLPreviewController como una subvista (no, no puedo usar un controlador de navegación o modal). Solo muestra el fondo de la tela de QLPreviewController.

Creo uno y lo agrego como una subvista:

QLPreviewController* preview = [[[QLPreviewController alloc] init] autorelease];
preview.dataSource = self;
preview.delegate = self;
preview.view.frame = CGRectMake(0, 0, self.pdfPreviewView.frame.size.width, self.pdfPreviewView.frame.size.height);
self.pdfPreviewView.previewController = preview;
[self.pdfPreviewView addSubview:preview.view];
[preview reloadData];

Mi métodos QLPreviewControllerDataSource funcionan bien (ver 1 pdf a la vez):

- (id <QLPreviewItem>) previewController: (QLPreviewController *) controller previewItemAtIndex: (NSInteger) index
{
    NSString *path = [[ResourceManager defaultManager] pathForPDF:self.currentPDF];
    NSURL *url = [NSURL fileURLWithPath:path];

    if ([QLPreviewController canPreviewItem:url]) {
        return url; // This always returns
    }

    return nil; // This line is never executed
}
- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller
{
    return 1;
}

El método de origen de datos siempre devuelve la URL del archivo, y QLPreviewController dice que puede abrir el archivo, pero en realidad nunca lo hace. Acabo de obtener el fondo. Losself.currentPDF se establece antes de crear QLPreviewController y contiene la información correcta (de CoreData).

Los métodos de delegado nunca se llaman. Pero tampoco lo estoy usando de manera estándar, así que eso no es totalmente inesperado.

También he intentado llamar a[preview setNeedsLayout], [preview setNeedsDisplay'] y[preview refreshCurrentPreviewItem] pero esos solo llaman a los métodos de fuente de datos y no cambian nada.

Los PDF son válidos. Puedo abrirlos tanto en Xcode como en Preview, así que ese no es el problema. Estoy un poco perplejo de por qué esto no funcionará. Cualquier ayuda sería apreciada para que esto funcione.

Respuestas a la pregunta(1)

Su respuesta a la pregunta