2

我目前正在为 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>

想法?提前致谢!

*我在用:

  • 平板电脑 2
  • 目标-C/C++
  • XCode 4.5
  • iOS6
4

1 回答 1

4

从文档中UIActivityViewController(重点是我的):

在呈现视图控制器时,您必须使用当前设备的适当方式来执行此操作。在 iPad 上,您必须在弹出窗口中显示视图控制器。在 iPhone 和 iPod touch 上,您必须以模态方式呈现。

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

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

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

于 2013-01-28T23:12:28.770 回答