【问题标题】:Cant hide UITabBar when pressing a specific tab [Tab Bar Application]-template按下特定选项卡[Tab Bar Application]-模板时无法隐藏TabBar
【发布时间】:2012-04-06 19:07:02
【问题描述】:

开发者!

我目前正在开发一个使用标签栏应用程序模板的应用程序。我想做的事 是为我的应用程序模拟与第一个选项卡相对应的起始页。

因此,当应用程序启动时,第一个选项卡被选中,UITabBar 不应该是可见的。 在这个“startview”中,有多个按钮的作用类似于其他选项卡,例如,我按下按钮 #2 并按下第二个选项卡视图,并且 UITabBar 再次可见。

我的问题是我有办法隐藏栏,但子视图没有调整到全屏。

通过使用: [self.tabBarController.tabBar setHidden:YES];

我也尝试过使用: self.hidesBottomBarWhenPushed = YES;

但它似乎没有效果,我不确定在哪里添加代码,因为我正在使用 模板。

有人知道如何使用 Tab Bar Application 模板来实现吗?

我猜它应该在: - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController: (UIViewController *)viewController

但我已经尝试过了,并且从未调用过该方法...

非常感谢, 罗伯特

【问题讨论】:

    标签: iphone ios ios4 uitabbarcontroller uitabbar


    【解决方案1】:

    此代码可以帮助您隐藏 tabbarcontroller 并调整 viewcontroller 的大小。

        - (void) hideTabBar:(UITabBarController *) tabbarcontroller {
    
        int height = 480;
    
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.3];
    
        for(UIView *view in tabbarcontroller.view.subviews) {
            if([view isKindOfClass:[UITabBar class]]) {
                [view setFrame:CGRectMake(view.frame.origin.x, height, view.frame.size.width, view.frame.size.height)];
            } 
            else {
                [view setFrame:CGRectMake(view.frame.origin.x,view.frame.origin.y, 320, 436)];
            }
        }
    
        [UIView commitAnimations];
    }
    

    第二种方法可以帮助你在视图中重新设置 tababr

        - (void) showTabBar:(UITabBarController *) tabbarcontroller {
    
        int height = 480;
    
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.3]; 
    
        for(UIView *view in tabbarcontroller.view.subviews) {
    
            if([view isKindOfClass:[UITabBar class]]) {
                [view setFrame:CGRectMake(view.frame.origin.x, height, view.frame.size.width, view.frame.size.height)];            
            } 
            else {
                [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, height)];
            }
        }    
    
        [UIView commitAnimations];
    }
    

    在您的代码中实现之前请先理解代码...

    【讨论】:

    • 好的,我理解代码,如果我理解正确,它应该在为标签 1 推送的视图中实现?
    猜你喜欢
    • 2011-12-09
    • 2012-02-26
    • 2019-12-06
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多