【问题标题】:How to hide Tabbar?如何隐藏标签栏?
【发布时间】:2013-09-21 10:34:54
【问题描述】:

我在 iOS 项目中遇到一个问题,我需要在登录功能期间隐藏我的标签栏,并希望在登录后显示我的标签栏。我搜索了很多内容,没有人为我的项目工作。请给我解决方案详细的程序,比如我想在哪里开发什么。在我的项目应用程序委托功能中有

 tabView = [[GTabBar alloc]initWithTabViewControllers:viewControllersArraytabItems:tabItemsArray initialTab:1]; 
    [window    addSubview:tabView.view]; 
    [window makeKeyAndVisible];
  • GTabBar ->用于创建标签栏。
  • viewcontroller 数组 -> 视图控制器列表。
  • tabitems 数组->选项卡项列表。
  • 除了 MainViewController 之外,还有一个用于处理选项卡事件的文件。

    提前致谢

【问题讨论】:

标签: iphone ios objective-c hide tabbar


【解决方案1】:

您可以创建一个导航控制器,然后您可以创建您的标签栏控制器并推送到 loginviewcontroller 所在的同一个导航控制器。

您可以通过以下步骤实现:

  1. 创建登录视图控制器
  2. 以 root 控制器身份登录创建导航控制器
  3. 登录过程完成后,您只需将整个 tabbarcontroller 推入同一个导航控制器。

【讨论】:

    【解决方案2】:

    在 appdel 中添加以下方法,您可以在任何视图控制器中调用此方法来显示和隐藏 tabbbar。只需在要显示和隐藏 tabBar 的任何位置调用此方法即可。

    - (void)hideTabBar:(UITabBarController *) tabbarcontroller
    {
    //    [UIView beginAnimations:nil context:NULL];
    //    [UIView setAnimationDuration:0.1];
    
        for(UIView *view in tabbarcontroller.view.subviews)
        {
            if([view isKindOfClass:[UITabBar class]])
            {
                [view setFrame:CGRectMake(view.frame.origin.x, ([UIScreen mainScreen].bounds.size.height == 568.0 ? 568:480)+20, view.frame.size.width, view.frame.size.height)];
            }
            else
            {
                [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width,  [UIScreen mainScreen].bounds.size.height == 568.0 ?568: 480)];
            }
        }
    
    //    [UIView commitAnimations];
    }
    
    - (void)showTabBar:(UITabBarController *) tabbarcontroller
    {
    
        for(UIView *view in tabbarcontroller.view.subviews)
        {
            if([view isKindOfClass:[UITabBar class]])
            {
                [view setFrame:CGRectMake(view.frame.origin.x,  ([UIScreen mainScreen].bounds.size.height == 568.0 ? 519: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,  [UIScreen mainScreen].bounds.size.height == 568.0 ? 519:431)];
            }
        }
     //    [UIView commitAnimations];
    }
    

    【讨论】:

      【解决方案3】:

      登录应该成为您的主要流程之外的另一个工作流程。所以你应该使用 tabbarController 作为主控制器,登录流程将由演示控件显示

      [tabbarController presentModalViewController:loginController animated:YES];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-12
        • 1970-01-01
        • 2013-02-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多