Facebook UIActivityViewController缺less取消和发布button

当我的应用程序打开Facebook UIActivityViewController ,Facebook屏幕顶部没有导航栏,并且没有取消或发布button – 退出屏幕的唯一方法是杀死应用程序。 我看到的其他应用程序在Facebook屏幕顶部有一个额外的导航栏,其中包含“取消”和“发布”button。

这是我正在使用的代码:

  NSURL *url = [NSURL URLWithString:@"http://www.mywebsite.com"]; NSArray *activityItems = @[url]; // Put together the UIActivityViewController UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil]; activityVC.excludedActivityTypes = @[UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, UIActivityTypeAirDrop, UIActivityTypePostToVimeo, UIActivityTypePostToFlickr, UIActivityTypeAddToReadingList]; // Present the UIActivityViewController [self presentViewController:activityVC animated:YES completion:nil]; 

Twitter,电子邮件和SMS屏幕都按预期显示。 Facebook是唯一有问题的人。

其他一些说明:我注意到,当我在这个应用程序上打开Facebook的分享,状态栏变成黑色的白色文字。 在我创build的另一个testing应用程序中,状态栏显示为黑色文本,显示为灰色。 不知道为什么/这是指向,但可能是一个线索。

这个问题似乎是应用程序范围的,因为我有3个地方可以调用共享,并且在所有3个实例中都发生这种情况。

附上一张图片。 “To:Public”工具栏上应该有一个导航栏。

在这里输入图像说明

任何想法,将不胜感激。

我已经创build了新的应用程序,并复制粘贴你的代码button的行动。 这是完美的工作。 您可以在这里查看图片: https : //drive.google.com/file/d/0B0FNcjA1N299NWdmZGZQWC1KbzA/view?usp=sharing

据我所知,如果你已经在你的应用中使用了[UINavigationBar appearance] ,那么只有这样做会造成问题。 请检查一下。

您可以按照您的要求隐藏导航栏。

因此,如果您想在UIActivityViewController存在时显示导航,然后在UIActivityViewControllerclosures时将其隐藏,请添加以下代码 : –

 //this will be called when the UIActivityViewController will be dismissed, so we are hiding the navigation [activityVC setCompletionHandler:^(NSString *activityType, BOOL completed) { [[UINavigationBar appearance] setHidden:YES]; }]; //this will be called when the UIActivityViewController will be shown, so we are enabling the navigation mean unhiding it. [self presentViewController:activityVC animated:YES completion:^{ [[UINavigationBar appearance] setHidden:NO] //you can also add code to customize status bar }];