Facebook UIActivityViewController 缺少取消和 Post 按钮
Facebook UIActivityViewController is Missing the Cancel and Post Buttons
当我的应用程序打开 Facebook UIActivityViewController
时,Facebook 屏幕顶部没有导航栏,也没有取消或 Post 按钮 - 退出屏幕的唯一方法是杀死应用程序。我看到的其他应用程序在 Facebook 屏幕顶部有一个额外的导航栏,其中包含取消和 Post 按钮。
这是我使用的代码:
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 共享时,状态栏变成黑色并带有白色文本。在我创建的另一个测试应用程序中,状态栏显示为灰色并带有黑色文本。不确定为什么/这指向什么,但可能是一个线索。
这个问题似乎是整个应用程序的问题,因为我有 3 个可以调用共享的位置,并且它在所有 3 个实例中都发生了。
正在附加图像。 "To: Public" 工具栏上方应该有一个导航栏。
如有任何想法,我们将不胜感激。
我创建了新的应用程序并复制粘贴了您的按钮操作代码。它工作得很好。你可以在这里查看它的图像:https://drive.google.com/file/d/0B0FNcjA1N299NWdmZGZQWC1KbzA/view?usp=sharing
据我所知,如果你在你的应用程序中使用 [UINavigationBar appearance]
做了一些事情,那么只有它才会出现问题。请检查。
您可以根据需要隐藏导航栏。
所以,添加下面的代码,如果你想在 UIActivityViewController
出现时显示导航,然后在 [=11] 时隐藏它=] 被驳回:-
//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
}];
当我的应用程序打开 Facebook UIActivityViewController
时,Facebook 屏幕顶部没有导航栏,也没有取消或 Post 按钮 - 退出屏幕的唯一方法是杀死应用程序。我看到的其他应用程序在 Facebook 屏幕顶部有一个额外的导航栏,其中包含取消和 Post 按钮。
这是我使用的代码:
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 共享时,状态栏变成黑色并带有白色文本。在我创建的另一个测试应用程序中,状态栏显示为灰色并带有黑色文本。不确定为什么/这指向什么,但可能是一个线索。
这个问题似乎是整个应用程序的问题,因为我有 3 个可以调用共享的位置,并且它在所有 3 个实例中都发生了。
正在附加图像。 "To: Public" 工具栏上方应该有一个导航栏。
如有任何想法,我们将不胜感激。
我创建了新的应用程序并复制粘贴了您的按钮操作代码。它工作得很好。你可以在这里查看它的图像:https://drive.google.com/file/d/0B0FNcjA1N299NWdmZGZQWC1KbzA/view?usp=sharing
据我所知,如果你在你的应用程序中使用 [UINavigationBar appearance]
做了一些事情,那么只有它才会出现问题。请检查。
您可以根据需要隐藏导航栏。
所以,添加下面的代码,如果你想在 UIActivityViewController
出现时显示导航,然后在 [=11] 时隐藏它=] 被驳回:-
//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
}];