我为iPhone制作了一个应用程序.现在,我正在为iPad重新创建它.
当用户选择工具栏中的操作按钮时,弹出窗口应显示a UIActivityViewController,但由于某种原因,它需要大约10秒才能显示第一次.在iPhone上,它需要大约一秒钟.除了弹出框之外,它是相同的代码.
我尝试禁用弹出窗口,但仍需要大约10秒才能显示.
这是代码:
-(IBAction)Actions:(UIBarButtonItem*)sender
{
if ([activityPopover isPopoverVisible] == YES)
{
[activityPopover dismissPopoverAnimated:YES];
return;
}
UIWebView *currentWebView = ((TabView *)self.tabs[self.currentTabIndex]).webViewObject;
NSString *currentURL = (NSString*)[currentWebView request].mainDocumentURL;
if (currentURL == NULL) return;
BookmarkActivity *bookmarkActivity = [[BookmarkActivity alloc] init];
UIActivityViewController *sharing = [[UIActivityViewController alloc] initWithActivityItems:[NSArray arrayWithObject:currentURL] applicationActivities:@[bookmarkActivity]];
activityPopover = [[UIPopoverController alloc] initWithContentViewController:sharing];
[activityPopover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
我已经在我的iPad 3和我的iPad mini上进行了测试,两者都需要一段时间来呈现.
我该如何解决这个问题?
objective-c uipopovercontroller ios uiactivityviewcontroller
当我使用a时UIActivityViewController,在用户选择活动(例如Mail或Message)后,我无法更改状态栏的文本颜色,也无法更改"取消"和"发送"导航栏按钮的文本/色调颜色.对于条形按钮,在AppDelegate我尝试过使用:
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
Run Code Online (Sandbox Code Playgroud)
没有任何反应.但是我可以用这个设置导航栏标题:
[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], UITextAttributeTextColor, nil]];
Run Code Online (Sandbox Code Playgroud)
我设置UIViewControllerBasedStatusBarAppearance到NO中Info.plist.并把线:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Run Code Online (Sandbox Code Playgroud)
在AppDelegate,并没有运气改变状态栏颜色.有任何想法吗?
textcolor uinavigationbar tintcolor uiactivityviewcontroller ios7
我的iOS是8.1.2,我正在使用UIActivityViewController进行社交分享.我点击一个按钮,让UIActivityViewController出现
- (IBAction)UIActivityTypeButtonClick:(id)sender {
NSString* text=@"I am sharing this text";
NSArray* sharedArray=@[text];
UIActivityViewController * activityVC=[[UIActivityViewController alloc]initWithActivityItems:sharedArray applicationActivities:nil];
activityVC.excludedActivityTypes=@[];
[self presentViewController:activityVC animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
我得到了这个

我收到消息,Twitter,邮件,WhatsApp和更多按钮.
单击更多我得到这个.
FACEBOOK
在哪里.我在我的iPhone上有facebook应用程序,并且在设置中也设置了我的ID.但Facebook永远不会出现在这里.Twitter确实如此.这是一个错误还是什么?请建议
谢谢
我正在尝试UIActivityViewController从 SwiftUI 视图中呈现(共享表)。我创建了一个名为ShareSheetconformed to的视图UIViewControllerRepresentable来配置UIActivityViewController.
struct ShareSheet: UIViewControllerRepresentable {
typealias UIViewControllerType = UIActivityViewController
var sharing: [Any]
func makeUIViewController(context: UIViewControllerRepresentableContext<ShareSheet>) -> UIActivityViewController {
UIActivityViewController(activityItems: sharing, applicationActivities: nil)
}
func updateUIViewController(_ uiViewController: UIActivityViewController, context: UIViewControllerRepresentableContext<ShareSheet>) {
}
}
Run Code Online (Sandbox Code Playgroud)
通过天真地这样做.sheet会导致以下情况。
.sheet(isPresented: $showShareSheet) {
ShareSheet(sharing: [URL(string: "https://example.com")!])
}
Run Code Online (Sandbox Code Playgroud)
有没有办法像通常呈现的那样呈现这个?比如覆盖一半的屏幕?
我有保存在Documents目录中的jpg文件,可以从标准UIActivityViewController共享.所有活动项目(包括"保存图像")都按预期工作,但是当点击"保存图像"时,控制台中会显示以下错误,尽管事实上jpg确实已保存到相机胶卷.
这是iOS中的错误,还是我必须以某种方式指定我的文件是文件URL中的jpg(而不是视频)?
2015-07-29 06:46:58.317 AppName [4658:893408]视频/var/mobile/Containers/Data/Application/A63DF08E-21D0-435D-A0D7-84D73D632FC9/Documents/ImageStore/805/23.jpg无法保存到保存的相册:错误域= AVFoundationErrorDomain代码= -11828"无法打开"UserInfo = 0x1702e8b80 {NSLocalizedFailureReason =不支持此媒体格式.,NSLocalizedDescription =无法打开,NSURL = file:/// var/mobile/Containers /数据/应用/ A63DF08E-21D0-435D-A0D7-84D73D632FC9/Documents/ImageStore/805/23.jpg,NSUnderlyingError = 0x170c4f9f0"操作无法完成.(OSStatus error -12847.)"}
这是我正在使用的代码:
NSURL *fileURL = [NSURL fileURLWithPath: [...path to my file...] isDirectory:NO];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[fileURL] applicationActivities:nil];
activityViewController.excludedActivityTypes = @[UIActivityTypeCopyToPasteboard, UIActivityTypePrint, UIActivityTypeAssignToContact, UIActivityTypeAddToReadingList, UIActivityTypePostToVimeo];
[self presentViewController:activityViewController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud) 我喜欢将自己的WhatsApp添加ActivityItem到UIActivityViewController,但它总是添加到较低的非彩色活动栏,但我喜欢将它添加到上部栏,带有彩色项目的栏.
那是我使用的代码:
WhatsApp *whatsApp = [[WhatsApp alloc] init];
UIActivityViewController* activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[image, text] applicationActivities:@[whatsApp]];
Run Code Online (Sandbox Code Playgroud)
喜欢.
我正在使用UIActivityViewController来共享图像.Facebook最近发生变化后.我可以单独分享图像和Url,但我无法同时共享图像和网址.相同的代码适用于Mail,twitter等.不确定我在Facebook上缺少什么.
func shareImage() {
var myWebsite = NSURL(string:"http://www.google.com/")
var img: UIImage = currentPhoto!
var shareItems:Array = [img, myWebsite]
let activityViewController:UIActivityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
activityViewController.excludedActivityTypes = [UIActivityTypePrint, UIActivityTypePostToWeibo, UIActivityTypeCopyToPasteboard, UIActivityTypeAddToReadingList, UIActivityTypePostToVimeo]
self.presentViewController(activityViewController, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud) 我试图在swift中分享图像和文本.但是当我选择通过facebook,messenger或whatsapp进行分享时,它只提供文本(图像不共享).我正在使用UIActivityViewController进行共享.
这是我的代码:
func displayShareSheet(latitude:NSString?, longitude:NSString?, image:UIImage?, address:NSString? ) {
let activityViewController = UIActivityViewController(activityItems: [(latitude as NSString?)!, (longitude as NSString?)!, (image as UIImage?)!, (address as NSString?)!], applicationActivities: nil)
presentViewController(activityViewController, animated: true, completion: {}
)
}
Run Code Online (Sandbox Code Playgroud) 我正在使用UIActivityViewController来共享文章网址,使用下面的代码,
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:shareItemArray applicationActivities:nil];
activityVC.excludedActivityTypes = @[UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, UIActivityTypeAirDrop];
[self presentViewController:activityVC animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
上面的代码在iOS 9和10中工作,但它在iOS 11中不起作用
我调试它,代码执行正常,之后我在控制台中收到错误日志,如下所示
[ShareSheet]错误:等待建立与ShareUI视图服务扩展的连接超时.
有没有人面临这个问题?有解决方法吗?
编辑:清理并运行项目后,我尝试做同样的事情,在UIActivityViewController打开2或3次后,我再次尝试,第一次我得到相同的上述错误,第二次只有UIActivityViewController被打开.
I'm trying to implement “Save image to Library” function and then return back to the current view controller, but on a new iOS 13 it dismisses back to the view controller that presented the current one:
PHPhotoLibrary.requestAuthorization({(_ status: PHAuthorizationStatus) -> Void in })
let shareItems: Array = [newImg,"Hello"] as [Any]
let activityController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
if UIDevice.current.userInterfaceIdiom == .pad {
activityController.popoverPresentationController?.sourceView = saveButton
}
present(activityController, animated: true)
Run Code Online (Sandbox Code Playgroud)