UIActivityViewController 对于某些用户会立即消失
Posted
技术标签:
【中文标题】UIActivityViewController 对于某些用户会立即消失【英文标题】:UIActivityViewController disappears immediately for some users 【发布时间】:2014-04-16 15:21:38 【问题描述】:对于我的应用程序的某些用户,每当我尝试显示 UIActivityViewController 以共享数据时,显示的活动视图会立即消失,但不会关闭(这导致我无法显示新的)。
无论出于何种原因,这只会发生在某些用户身上,而对于那些用户来说,它每次都会发生。我无法辨别设备类型等方面的模式。我连接了用户的一部手机并查看了控制台日志,每次 UIActivityViewController 消失时我都会看到此错误:
Apr 16 10:00:28 Test-iPhone wirelessproxd[4635] <Notice>: (Error) error event: (<OS_xpc_error: <error: 0x192556dc8> count = 1, contents =
"XPCErrorDescription" => <string: 0x1925570d0> length = 18, contents = "Connection invalid"
>)
我似乎无法在任何地方在线找到任何与该错误相关的结果。是什么导致了这个问题?
这是我创建 UIActivityViewController 的代码:
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[self.currentStory, self.currentStory.webURL] applicationActivities:(USES_IPAD_UI? @[saveStoryActivity] : nil)];
BOOL blockPaused = self.userPaused;
activityViewController.completionHandler = ^(NSString *activityType, BOOL completed)
if (!blockPaused)
[playerViewController play];
;
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone)
[self.navigationController presentViewController:activityViewController animated:YES completion:NULL];
else if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)
if (!self.activityPopover)
self.activityPopover = [[UIPopoverController alloc] initWithContentViewController:activityViewController];
else
self.activityPopover.contentViewController = activityViewController;
[self.activityPopover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
到目前为止,我只在 iPhone 上看到过这种情况,但我也包含了 iPad 代码,以防万一。
【问题讨论】:
【参考方案1】:呸。事实证明,这是由我们在其中仅针对 beta 用户的一些代码引起的,这些代码在 CALayer 中显示了内部版本号,该 CALayer 浮动在其他所有内容之上(layer.zPosition = CGFLOAT_MAX
)。 UIActivityViewController 似乎不喜欢低于其他任何东西。注释掉那个 beta 代码,一切正常。
【讨论】:
以上是关于UIActivityViewController 对于某些用户会立即消失的主要内容,如果未能解决你的问题,请参考以下文章
UIActivityViewController 共享 UIActivity 未显示
UIActivityViewController 不适用于 WKWebView
限制 UIActivityViewController 共享扩展活动