ios - 隠す - タブバー 非表示 safari




どのようにiOSのナビゲーションバーでビューのタブバーを隠す/表示するのですか? (6)

私はナビゲーションバーとタブバーを持つビューを持っています。 私がしたいのは、特定のビューでタブバーを非表示にし、ユーザーがビューを変更したときにタブバーを再度表示することです。

私は、タブバーを隠すためのコードスニペットを見た:

-(void)makeTabBarHidden:(BOOL)hide
{
    // Custom code to hide TabBar
    if ( [tabBarController.view.subviews count] < 2 ) {
        return;
    }

    UIView *contentView;

    if ( [[tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] ) {
        contentView = [tabBarController.view.subviews objectAtIndex:1];
    } else {
        contentView = [tabBarController.view.subviews objectAtIndex:0];
    }

    if (hide) {
        contentView.frame = tabBarController.view.bounds;       
    }
    else {
        contentView.frame = CGRectMake(tabBarController.view.bounds.origin.x,
             tabBarController.view.bounds.origin.y,
             tabBarController.view.bounds.size.width,
             tabBarController.view.bounds.size.height - tabBarController.tabBar.frame.size.height);
    }

    tabBarController.tabBar.hidden = hide;
}

from: http://nickwaynik.com/iphone/hide-tabbar-in-an-ios-app/ : http://nickwaynik.com/iphone/hide-tabbar-in-an-ios-app/

私はタブバーを非表示にしたいという考え方でこれを呼びます

[self makeTabBarHidden:YES];

そのビューで表示/非表示にするとうまくいきますが、前のビューに戻ると、そこにタブバーが隠されています。 ビューのviewDidUnloadviewWillDisappearviewDidDisappear関数でその関数をviewWillDisappearうとしましたが、何も起こりません。 前のビューのviewDidLoadviewWillAppearviewDidAppear関数で関数が呼び出された場合も同様です。


XibまたはストーリーボードファイルでView Controllerをクリックすると、属性インスペクタで同じプロパティを使用できます。


hide / showを試してみてください。

-(void)viewWillDisappear:(BOOL)animated{
    self.hidesBottomBarWhenPushed = NO;
}
-(void)viewWillAppear:(BOOL)animated{
    self.hidesBottomBarWhenPushed = YES;
}

ストーリーボードのInterface Builderでこれを行うこともできます。 タブバーを非表示にするView Controllerを選択し、「プッシュでボトムバーを隠す」を選択します。


代わりにUIViewController.hidesBottomBarWhenPushedを設定することができます:

DetailViewController *detailViewController = [[DetailViewController alloc] init];
detailViewController.hidesBottomBarWhenPushed = YES;
[[self navigationController] pushViewController:detailViewController animated:YES];    
[detailViewController release];


self.navigationController.hidesBottomBarWhenPushed=YES;

この行をviewdidloadまたはviewWillAppear追加します。これは、あなたをタブから隠すことになります。





uitabbarcontroller