1

我在容器视图中使用 UIActivityViewController。我想通过电子邮件、推特和脸书分享一些文字。虽然最后两个工作完美,但电子邮件有问题。问题是作曲家视图不会通过取消事件或尝试发送它来消除!当 ActivityView 出现时,我收到以下消息:

Launch Services: Registering unknown app identifier com.apple.mobilemail failed 
Launch Services: Unable to find app identifier com.apple.mobilemail

这很奇怪,因为应用程序标识符确实没有问题,并且我可以在其他视图控制器中使用 ActivityViewController 与电子邮件共享文本(当不在容器视图中时)。我的代码,如下:

- (void)openBtnTouched {
    NSString *alertTitleString = [[[GlobalVariables sharedInstance].alertsArray objectAtIndex:self.selectedIndex]objectForKey:@"alertTitle"];
    NSString *alertMsgString = [[[GlobalVariables sharedInstance].alertsArray objectAtIndex:self.selectedIndex]objectForKey:@"alertMessage"];

    UIActivityViewController *activity;

    activity = [[UIActivityViewController alloc] initWithActivityItems:@[alertTitleString,alertMsgString] applicationActivities:nil];

    activity.excludedActivityTypes = @[
                                       UIActivityTypeMessage,
                                       UIActivityTypePostToWeibo,
                                       UIActivityTypeSaveToCameraRoll,
                                       UIActivityTypeAssignToContact,UIActivityTypeCopyToPasteboard];

    activity.completionHandler = ^(NSString *activityType, BOOL completed){
        NSLog(@"Activity Type selected: %@", activityType);
        if (completed) {
            NSLog(@"Selected activity was performed.");
        } else {
            if (activityType == NULL) {
                NSLog(@"User dismissed the view controller without making a selection.");
            } else {
                NSLog(@"Activity was not performed.");
            }
        }
    };
    [self presentViewController:activity animated:YES completion:NULL];
}
4

1 回答 1

2

我不确定您的应用程序是为 iPhone、iPad 还是两者设计的,但 Apple如何显示UIActivityViewController. 从他们的文档中

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

如果您以其他方式(即在容器视图控制器中)显示它,您很可能会遇到这种奇怪的行为。我建议您按照 Apple 的建议显示活动视图控制器。

于 2013-06-03T12:26:04.527 回答