1

我正在开发一个标签栏项目,在这个项目中我也有导航控制器。我正在执行以下步骤:- 显示从第一个选项卡到 5 个下一个屏幕的主屏幕导航。在第 6 个屏幕上,我想显示 tabbarcontroller 并想显示我的其他标签栏。我尝试了以下代码:-

self.navigationController.tabBarController.hidesBottomBarWhenPushed = YES;

和其他一些。但还没有取得任何成功。所以有人能建议我怎么做吗?

谢谢

4

3 回答 3

1

创建两个不带 .xib 的文件 .h 和 .m

//.h file
#import <UIKit/UIKit.h>

@class Class1, Class2;
@interface TabbarController : UITabBarController 
{
        Class1 *class1;
    Class2 *class2;
    UINavigationController *nav1,*nav2;
}
@end

//.m 文件

@implementation TabbarController

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad 
{
    [super viewDidLoad];

    class1 =[[Class1 alloc] initWithNibName:@"Class1" bundle:nil];
    nav1=[[UINavigationController alloc] initWithRootViewController:class1];
    class1.title = @"class1";
    class1.tabBarItem.image = [UIImage imageNamed:@"tab1.png"];
    class1.navigationController.navigationBar.hidden = TRUE;

    class2 =[[Class2 alloc] initWithNibName:@"Class2" bundle:nil];
    nav2=[[UINavigationController alloc] initWithRootViewController:class2];
    class2.tabBarItem.image = [UIImage imageNamed:@"tab2.png"];
    class2.title = @"class2";
    class2.navigationController.navigationBar.hidden = TRUE;

    NSArray *controllers = [NSArray arrayWithObjects:nav1,nav2,nil];
    self.viewControllers = controllers;
}

将您的视图重定向到此视图,无论您需要标签栏。

于 2011-04-13T13:53:35.507 回答
0

试试这个:

创建委托类的对象

#import "DelegateClass.h"


DelegateClass *appDel;

现在在 .m 类

-(void)viewDidLoad
{
  [super viewDidLoad];

  appDel= (DelegateClass *)[[UIApplication sharedApplication]delegate];

}

现在只需在导航的视图中执行此操作,

appDel.tabBarController.hidesBottomBarWhenPushed = YES;

这只是一个棘手的部分。它对我很有用:)

于 2011-04-13T17:54:07.750 回答
0

你必须使用自定义UItabBarController。请参阅创建自定义 TabBar 控制器

于 2011-04-13T09:32:12.720 回答