mam natknąć co wygląda sytuacja, że większość ludzi, gdy starają się przedstawić UIActivityViewController
na iPadzie; jest upaść z:UIActivityViewController upaść na iPada z sourceView lub barButtonItem
Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (<_UIAlertControllerActionSheetRegularPresentationController: 0x7fc4f2d87d00>) should have a non-nil sourceView or barButtonItem set before the presentation occurs.
Oto mój kod:
- (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];
}
W moim viewDidLoad
, mam:
UIBarButtonItem *composeButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(shareLeaflet)];
self.navigationItem.rightBarButtonItem = composeButton;
}
Pogląd ten jest UIPageViewController
który prezentuje kilka zdjęć i kiedy użytkownik kliknął przycisk udostępniania, oczekuję wyskakującego arkusza akcji w stylu iOS 8. Tak właśnie dzieje się na iPhone'u, ale na iPadzie nadal się zawiesza. Które doprowadziły mnie do przepełnienie stosu, ale żadne z pytań (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, etc) praca dla mnie.
Próbowałem wszystkich rozwiązań tam, a ja po prostu zupełnie się tego, co jest wymagane w tym.
To co usiłuję osiągnąć:
Wszelkie myśli o tym by być naprawdę doceniane.
Witam @JDx - ah man, to było łatwe ! Przepraszam za łatwe pytanie, które działało jak czar! Dziękuję Ci! Ale po prostu zadać pytanie uzupełniające - czy mogę kontrolować, z której strony pochodzi popup? W tej chwili pochodzi z lewego górnego rogu ekranu, ale przycisk znajduje się w prawym górnym rogu. – amitsbajaj
Nie ma problemu! Nie sądzę, że możesz, może zamiast tego możesz użyć kontrolera UiPopoverController? – JDx
Dzięki JD - Próbuję tylko aktywować UIActivityViewController, tak jak i arkusz Share w iOS 8/9. Właśnie zaktualizowałem pytanie, aby dołączyć obraz z Safari na iPadzie - pojawia się prosto pod tym przyciskiem, ale moje pojawia się po lewej stronie, co jest dziwne. – amitsbajaj