UIActivityViewController 上缺少关闭按钮

Posted

技术标签:

【中文标题】UIActivityViewController 上缺少关闭按钮【英文标题】:Lack of a close button on UIActivityViewController 【发布时间】:2013-01-28 20:36:15 【问题描述】:

我目前正在为 ios 应用程序做一些更新。对于更新,我将利用 iOS6 的功能。我正在使用 UIActivityViewController 来完成这项工作以及一些自定义 UIActivity 活动。我遇到的主要问题是没有“取消”或“关闭”按钮。退出活动视图的唯一方法是,您要么在社交网络上发布内容,要么表现得像您要去的那样然后取消。

NSArray* dataToShare = [[NSArray alloc] initWithObjects:@"blah", nil];
// Custom activities are allocated here
NSArray* customActivities = [[NSArray alloc] initWithObjects:activities, nil];
NSArray* excludedActivities = [[NSArray alloc] initWithObjects:exclusions, nil];

activityController = [[UIActivityViewController alloc] initWithActivityItems:formatArray applicationActivities:customActivities];
activityController.excludedActivityTypes = excludedActivities;

activityController.modalPresentationStyle = UIModalPresentationFormSheet;
[[UIApplication sharedApplication].keyWindow addSubview:self.view];
[[UIApplication sharedApplication].keyWindow bringSubviewToFront:activityController.view];
[self presentViewController:activityController animated:YES completion:^ closureCode
];

这在网络内容方面完成了我在活动控制器内部所需的一切,我只是没有关闭按钮。我不知道这是否是同一个问题,但是当我尝试再次打开“共享”菜单时视图消失时,它会告诉我

<UIActivityViewController: 0x1e0db7d0>  on <ShareDelegate: 0x1e048490> which is already presenting <UIActivityViewController: 0x21b1d4f0>

想法?提前致谢!

*我正在使用:

iPad 2 Objective-C/C++ XCode 4.5 iOS6

【问题讨论】:

默认情况下还没有取消按钮吗? techotopia.com/images/3/31/… 不,我在 iPad 上。出于某种原因,它只会提出活动,但不会取消。在我的 iPhone 上,它可以使用上面的代码,看起来就像你展示的图片(至少对我来说很接近) 【参考方案1】:

来自UIActivityViewController 的文档(重点是我的):

在展示视图控制器时,您必须使用适用于当前设备的适当方式。 在 iPad 上,您必须以弹出框的形式呈现视图控制器。在 iPhone 和 iPod touch 上,您必须以模态方式呈现它。

在 iPad 上,用户在弹出框外点击会取消弹出框。

在 iPhone/iPod touch 上,模态视图控制器将显示一个取消按钮。

简而言之,不要在 iPad 上使用表单。

【讨论】:

效果非常好。我可能应该抓住那个小花絮,但不知何故我错过了它。 iOS 编程和 Objective-C 的新手,所以我得到的所有帮助我都非常感激。谢谢!

以上是关于UIActivityViewController 上缺少关闭按钮的主要内容,如果未能解决你的问题,请参考以下文章

UIActivityViewController 背景颜色

UIActivityViewController 共享 UIActivity 未显示

UIActivityViewController 不适用于 WKWebView

限制 UIActivityViewController 共享扩展活动

尝试呈现 UIActivityViewController 时崩溃

更改 UIActivityViewController 的 navigationBar 的颜色