1. ホーム
  2. iphone

uitabbarcontrollerを非表示にする方法

2023-10-13 05:05:55

質問

私は UITabBarController . 私のアプリケーションでは、これを非表示にしたいのですが、そのためには hidesBottomBarWhenPushed を使わずに隠したいのです。例えば、私は私のアプリケーションで隠すボタンを押したときにそれを隠したいのです。

私はグーグルで多くの記事を読みましたが、私はこれを行うことができる方法を見つけることができません。

どのように解決するのですか?

私は私の作業コードからこれを貼り付けています...あなたはタブバーコントローラを隠すと表示するためにこれらのメソッドを呼び出すことができます...ちょうどこれらの関数にtabbarcontrollerインスタンスを渡します...。

// Method call
[self hideTabBar:self.tabBarController];   


// Method implementations
- (void)hideTabBar:(UITabBarController *) tabbarcontroller
{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.5];

    for(UIView *view in tabbarcontroller.view.subviews)
    {
        if([view isKindOfClass:[UITabBar class]])
        {
            [view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)];
        } 
        else 
        {
            [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)];
        }
    }

    [UIView commitAnimations];   
}

- (void)showTabBar:(UITabBarController *) tabbarcontroller
{       
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.5];
    for(UIView *view in tabbarcontroller.view.subviews)
    {
        NSLog(@"%@", view);

        if([view isKindOfClass:[UITabBar class]])
        {
            [view setFrame:CGRectMake(view.frame.origin.x, 431, view.frame.size.width, view.frame.size.height)];

        } 
        else 
        {
            [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 431)];
        }
    }

    [UIView commitAnimations]; 
}