Pregunta

Tengo una aplicación maestro-detalle donde el maestro muestra una lista de documentos y el detalle muestra una vista previa de estos documentos.

En el guión gráfico he dibujado una UIView llamada vista previa.Lo he declarado en .h:

@property (weak, nonatomic) IBOutlet UIView *vistaPreview;

También he declarado la variable QLPreviewController* previewVC; para ser utilizado en .m

En .m, tengo un método que se llama cuando el usuario toca un documento de la lista.El método agrega un QLPreviewController en la vista vistaPreview:

    previewVC = [[QLPreviewController alloc] init];
    previewVC.dataSource = self;
    previewVC.delegate = self;
    [self addChildViewController:previewVC];
    CGFloat w= self.vistaPreview.frame.size.width;
    CGFloat h= self.vistaPreview.frame.size.height;
    previewVC.view.frame = CGRectMake(0, 0,w, h);
    [self.vistaPreview addSubview:previewVC.view];
    [previewVC didMoveToParentViewController:self];

La cuestión es que, después de hacer clic varias veces en algunos documentos de la lista, aparece el siguiente error:

Domain=XPCObjectsErrorDomain Code=2 "The operation couldn’t be completed.

La aplicación no falla, solo aparece un mensaje en la vista QLPreviewController con el nombre del documento (y no el contenido).Cuando hago clic en otro documento de la lista, la aplicación vuelve a funcionar bien y muestra el contenido del documento.

¿Alguna idea de cómo solucionarlo?

¡Gracias de antemano!

¿Fue útil?

Solución

El problema era la cantidad de hijos de QLPreviewController.Entonces, busco elementos secundarios de QLPreviewController y los elimino de parentViewController.

NSArray *children = [self childViewControllers];
for (int i = 0; i<[children count]; i++) {
    NSString *classString = [NSString stringWithFormat:@"%@", [[children objectAtIndex:i] class]];
    if ([classString isEqualToString:@"QLPreviewController"]) {
        [[children objectAtIndex:i] removeFromParentViewController];
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top