15 Stimmen

Seltsames Problem mit UIDocumentInteractionController

Ich weiß nicht, was mit diesem Code falsch ist, aber jedes Mal, wenn ich die App ausführe, stürzt sie ab, nachdem das Menü angezeigt wurde.

NSString * path = [[NSBundle mainBundle] pathForResource:@"tung" ofType:@"doc"];

UIDocumentInteractionController *docController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:path]];

docController.delegate = self;

//[docController presentPreviewAnimated:YES];

CGRect rect = CGRectMake(0, 0, 300, 300);
[docController presentOptionsMenuFromRect:rect inView:self.view animated:YES];

Den Fehler, den ich erhalten habe:

*** Beenden der App aufgrund einer unbehandelten Ausnahme 'NSGenericException', Grund: '-[UIPopoverController dealloc] erreicht, während das Popover noch sichtbar ist.'

Was sollte ich jetzt tun?

0 Stimmen

Auf welcher Zeile wird der Fehler geworfen?

0 Stimmen

Auf dieser Linie: [docController presentOptionsMenuFromRect:rect inView:self.view animated:YES];

0voto

EquiAvia Tech Punkte 31

Ich habe dieses Problem gelöst, indem ich eine Eigenschaft erstellt und dann diesen Code verwendet habe.

    [_DocController dismissMenuAnimated:NO];
    _DocController = [UIDocumentInteractionController interactionControllerWithURL:url];
    //docController.delegate = self;

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    {
        [_DocController presentOptionsMenuFromRect:((UIView*)control).bounds inView:control animated:YES];
    }
    else
    {
        [_DocController presentOptionsMenuFromBarButtonItem:control animated:YES];
    }

Das dismissMenuAnimated ist wichtig, um den UIPopover Dealloc Fehler zu verhindern. Der häufigste Auftreten des Fehlers war, wenn das Popover noch angezeigt wurde und Sie den Knopf erneut gedrückt haben, um das Popover anzuzeigen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X