0

tabBarアプリでは、ビューの上部にナビゲーションバーがあります。ただし、4つを超えるtabBarがあるため、他を選択するオプションを備えたTableViewが表示されます。

エンドユーザーが順序を変更することにした場合、最初の4つのビューのナビゲーションを非表示にする方法はありますか?

私はこのようなことを考えていましたが、このコードのifステートメントは正しくありません。

    if([[self.tabBarController viewControllers] objectAtIndex:5])
{
    [_navBar setHidden:YES];
}
else {
    [_navBar setHidden:NO];
}
4

3 に答える 3

0

ユーザーがタブを並べ替えるのが心配な場合に役立つもう1つのオプションは、カスタムのMoreViewControllerを作成することです(並べ替えはありません)。このSOの答えを参照してください。

于 2012-06-12T10:39:10.017 に答える
0

TabBarのビューの順序を変更したら、次のようにナビゲーションバーを非表示にする必要があります。

[self.tabBarController.viewControllers 
   enumerateObjectsUsingBlock:^(id obj, NSUInteger index, BOOL *stop)
{
    if (index < 4)
    {
       UIViewController *vc = (UIViewController *)obj;
       [vc.navigationController setNavigationBarHidden:YES];
    }

}];
于 2012-06-12T10:42:22.197 に答える
0

UITabBarControllerDelegateプロトコルの– tabBarController:didEndCustomizingViewControllers:changed:メソッドをカスタムオブジェクトに実装し、UITabBarControllerのデリゲートとして設定する必要があります。ここでそれについて読んでください:http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITabBarControllerDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UITabBarControllerDelegate

于 2012-06-12T11:00:46.970 に答える