在推送到UINavigationController时隐藏FBFriendPickerViewController导航栏

时间:2012-11-17 06:06:11

标签: objective-c ios facebook-ios-sdk

使用FBFriendPickerViewController呈现presentViewController:animated:completion:的实例非常简单,类似乎就是用于该用例。但是,我想使用FBFriendPickerViewControllerUINavigationController的实例推送到pushViewController:animated:的实例。

请考虑以下代码作为示例:

self.fbFriendPickerController = [[FBFriendPickerViewController alloc] init];
self.fbFriendPickerController.hidesBottomBarWhenPushed = YES;
// configure stuff

[[self navigationController] pushViewController:self.fbFriendPickerController animated:YES];

然而,问题是FBFriendPickerViewController的实例已经有一个顶部导航栏。当推到UINavigationController时,会导致两个顶部导航栏垂直堆叠,如下面的屏幕截图所示。

double top nav bars

一种解决方案是隐藏UINavigationController的顶部导航栏,但这会产生一个尴尬的过渡,并且没有后退按钮。有关保持UINavigationController顶部导航栏但隐藏FBFriendPickerViewController顶部导航栏的最佳方法的想法吗?

1 个答案:

答案 0 :(得分:6)

在浏览了Github上的Facebook iOS SDK source code后,我发现了这一点。 FBFriendPickerViewControllerFBViewController的子类。如果您将doneButton的{​​{1}}和cancelButton属性设置为FBViewControllernil将删除顶部导航栏。因此,以下代码有效:

FBViewController