mir begegnet ist, was aussieht wie eine Situation, die die meisten Menschen konfrontiert werden, wenn ein UIActivityViewController
auf dem iPad zu präsentieren versuchen; es stürzt mit:UIActivityViewController auf dem iPad mit Sourceview oder barButtonItem Absturz
Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (<_UIAlertControllerActionSheetRegularPresentationController: 0x7fc4f2d87d00>) should have a non-nil sourceView or barButtonItem set before the presentation occurs.
mein Code hier:
- (void)shareLeaflet
{
NSString *forwardedString = [[NSString alloc] initWithFormat:@"Check out this leaflet\n\n %@ \n\nself.theURLToShare];
UIActivityViewController *activityViewController = nil;
if (IDIOM == IPAD)
{
NSLog(@"iPad");
activityViewController.popoverPresentationController.sourceView = self.view;
// activityViewController.popoverPresentationController.sourceRect = self.frame;
[self presentViewController:activityViewController
animated:YES
completion:nil];
}
else
{
NSLog(@"iPhone");
activityViewController = [[UIActivityViewController alloc] initWithActivityItems:[NSArray arrayWithObjects:forwardedString, nil] applicationActivities:nil];
[self presentViewController:activityViewController animated:YES completion:nil];
}
In meinem viewDidLoad
, ich habe:
UIBarButtonItem *composeButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(shareLeaflet)];
self.navigationItem.rightBarButtonItem = composeButton;
}
Diese Ansicht ein UIPageViewController
ist, die einige Bilder präsentiert, und wenn die Wenn der Nutzer den Share-Button drückt, erwarte ich, dass das iOS 8-Style-Share-Popup erscheint. Genau das passiert auf dem iPhone, aber auf dem iPad stürzt es weiter ab. Das führte mich zu Überlauf Stapel, aber keine der Fragen (crash on showing UIPopOverPresentationController, iOS Crash: Terminating app due to uncaught exception reason: UIPopoverPresentationController should have a non-nil sourceView, UIWebViewTerminating app due to UIPopoverPresentationController, ios8 iPad uiwebview crashes while displaying popover when user taps drop down list HTML select tag, usw.) arbeitet für mich.
Ich habe alle Lösungen dort versucht, und ich bekomme nur recht, was mit diesem erforderlich ist.
Das ist, was ich versuche zu erreichen:
Irgendwelche Gedanken auf, dies würde wirklich zu schätzen.
Hallo @JDx - ah Mann, das war einfach ! Entschuldigung für die einfache Frage, die wie ein Zauber wirkte! Vielen Dank! Aber um eine Nachfolgefrage zu stellen - kann ich kontrollieren, von welcher Seite das Popup kommt? Im Moment kommt es von oben links auf dem Bildschirm, aber der Button befindet sich tatsächlich oben rechts. – amitsbajaj
Kein Problem! Ich glaube nicht, dass du das kannst, vielleicht könntest du stattdessen einen UiPopoverController benutzen? – JDx
Dank JD - Ich versuche nur die UIActivityViewController zu aktivieren, wie das iOS 9.8 Teilen Blatt. Ich habe gerade die Frage aktualisiert, um ein Bild von Safari auf dem iPad zu enthalten - es kommt direkt unter diesem Knopf, aber meins erscheint auf der linken Seite, die seltsam ist – amitsbajaj