在iOS7 iPad 1x / 2x模式下只有Facebook& UIActivityViewController中缺少Twitter图标?

时间:2015-06-03 11:55:36

标签: ios iphone facebook ipad

  • 我的应用程序仅适用于iPhone,当我在iPad上运行相同的应用程序时,1x& 2x模式然后UIActivityViewController没有显示facebook& twitter图标也邮件图标不合适。虽然功能正常。
  • 根据配置,各个帐户已在“设置”中配置。
  • 此问题仅发生在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图标丢失。

这是截图

enter image description here

2 个答案:

答案 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,则会出现此异常)。”

参考链接: - 'NSInvalidArgumentException', reason: '-[UIPopoverController initWithContentViewController:] called when not running under UIUserInterfaceIdiomPad.'

这可能对你有帮助。

由于

答案 1 :(得分:0)

作为上述问题的解决方案,我刚刚创建了具有所需动画的自定义UIView以及每个不同实现的项目。我探索的唯一解决方案。