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 背景颜色

UIActivityViewController 共享 UIActivity 未显示

UIActivityViewController 不适用于 WKWebView

限制 UIActivityViewController 共享扩展活动

尝试呈现 UIActivityViewController 时崩溃

更改 UIActivityViewController 的 navigationBar 的颜色