4

呈现FBFriendPickerViewControllerusing的实例presentViewController:animated:completion:非常简单,并且该类似乎是针对该用例的。但是,我想将 的实例推FBFriendPickerViewController送到UINavigationControllerusing的实例上pushViewController:animated:

以以下代码为例:

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

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

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

双顶导航栏

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

4

1 回答 1

6

在浏览了Github 上的 Facebook iOS SDK源代码后,我明白了这一点。FBFriendPickerViewController是 的子类FBViewController。如果将 any 的doneButtoncancelButton属性设置FBViewControllernilFBViewController将移除顶部导航栏。结果,以下代码有效:

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

[[self navigationController] pushViewController:self.fbFriendPickerController animated:YES];
于 2012-11-19T23:45:40.080 回答