此问题仅发生在iPad上,但在iPhone上运行正常。
- (void)onShare:(id)sender {
UIActivityViewController *activityView = [[UIActivityViewController alloc] initWithActivityItems:@[@"World Cup! 2015",[UIImage imageNamed:@"WC15"]] applicationActivities:nil] ;
[activityView setExcludedActivityTypes:[NSArray arrayWithObjects:
UIActivityTypePostToWeibo, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr, UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo, UIActivityTypeAirDrop, UIActivityTypePrint,nil]];
[self presentViewController:activityView animated:YES completion:nil];
}
只有Facebook& Twitter图标丢失。
这是截图
答案 0 :(得分:0)
原因是我们需要使用 UIPopOverViewController for iPad 和 UIActivityViewController for iPhone 。
请详细说明这个问题:UIActivityViewController crashing on iOS8 iPads
以下是解决此问题所需的代码:
UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:[NSArray arrayWithObject:@"Test",nil] applicationActivities:nil];
//if iPhone
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
[self presentViewController:controller animated:YES completion:nil];
}
//if iPad
else {
// Change Rect to position Popover
UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:controller];
[popup presentPopoverFromRect:CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height/4, 0, 0)inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
注意: - iPhone上没有UIPopoverController。从文档中可以看出:“Popover控制器只能在iPad设备上使用。尝试在其他设备上创建一个会导致异常(如果您的应用只是iPhone,则会出现此异常)。”
这可能对你有帮助。
由于
答案 1 :(得分:0)
作为上述问题的解决方案,我刚刚创建了具有所需动画的自定义UIView
以及每个不同实现的项目。我探索的唯一解决方案。