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すでに上部のナビゲーションバーがあることです。にプッシュするとUINavigationController、下のスクリーンショットに示すように、2つの上部ナビゲーションバーが垂直に積み重ねられます。

ダブルトップナビゲーションバー

1つの解決策は、の上部のナビゲーションバーを非表示にすることUINavigationControllerですが、それは厄介な遷移を作成し、戻るボタンはありません。UINavigationControllerトップナビゲーションバーを維持するが、トップナビゲーションバーを非表示にするための最良の方法について何か考えはありFBFriendPickerViewControllerますか?

4

1 に答える 1

6

Github でFacebook iOS SDKソース コードを調べたところ、これがわかりました。FBFriendPickerViewControllerのサブクラスですFBViewController。anyの プロパティdoneButtonとプロパティを に設定すると、上部のナビゲーション バーが削除されます。その結果、次のコードが機能します。cancelButtonFBViewControllernilFBViewController

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 に答える