我有一个简单的应用程序,可以在iOS 8上的应用程序中加载网页,我使用的是名为UIWebViewController
的自定义VideoWebViewController
,而对于iOS 9,我正在使用SFSafariViewController
。在VideoWebViewController
中,我有以下方法在调用UIActivityViewController
时调用:
NSString *currentURL = self.webView.request.URL.absoluteString;
// This method gets called when the user hits the right bar button item; the share sheet.
NSURL *facebook = [[NSURL alloc] initWithString:@"http://www.facebook.com"];
NSURL *twitter = [[NSURL alloc] initWithString:@"http://twitter.com"];
NSString *forwardedString = [[NSString alloc] initWithFormat:@"Check this out %@, %@", facebook, twitter];
UIActivityViewController *activityViewController = nil;
activityViewController = [[UIActivityViewController alloc] initWithActivityItems:[NSArray arrayWithObjects:forwardedString, nil] applicationActivities:nil];
当我拨打VideoWebViewController
时,我这样做:
VideoWebViewController *video = [[VideoWebViewController alloc] init];
UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:video];
[self presentViewController:navigation animated:YES completion:nil];
[video setSelectedVideo:@"https://www.youtube.com"];
当我拨打SFSafariViewController
时,我这样做:
SFSafariViewController *safariVC = [[SFSafariViewController alloc] initWithURL:[NSURL URLWithString:@"https://www.youtube.com/"]entersReaderIfAvailable:NO];
safariVC.delegate = self;
[self presentViewController:safariVC animated:YES completion:nil];
问题
那么我如何自定义UIActivityViewController
中SFSafariViewController
的调用时间?使用VideoWebViewController
很容易做到这一点,因为我正在设置自定义子类,但我不确定是否有办法用SFSafariViewController
执行此操作?当用户在SFSafariViewController
中选择共享表(UIActivityViewController)时,我只想添加一些自定义文本。
更新
我已经创建了SFSafariViewController的自定义子类,但我看不到一种方法来调用用户选择ShareSheet(UIActivityViewController)时发生的事情的方法。
对此的任何指导将不胜感激。
更新
看起来这不可能,所以我已经为Apple创建了一个错误报告:https://bugreport.apple.com/problem/viewproblem