3

我想以tabbarcontroller编程方式制作。tabBarController不显示在页面中。谁能告诉我们哪里出了问题。我们可以tabbarcontroller在一个应用程序中制作多个

ViewController.m
- (void)viewDidLoad
{
    report=[[UIViewController alloc]initWithNibName:@"ViewController" bundle:nil];
    View1 *template=[[View1 alloc]initWithNibName:@"View1" bundle:nil];
    View2 *acc=[[View2 alloc]initWithNibName:@"View2" bundle:nil];
    View3 *four=[[View3 alloc]initWithNibName:@"View3" bundle:nil];
    View4 *five=[[View4 alloc]initWithNibName:@"View4" bundle:nil];   

    nav1=[[UINavigationController alloc]initWithRootViewController:report];
    nav2=[[UINavigationController alloc]initWithRootViewController:template];
    nav3=[[UINavigationController alloc]initWithRootViewController: acc];
    nav4=[[UINavigationController alloc]initWithRootViewController:four];
     nav5=[[UINavigationController alloc]initWithRootViewController:five];

    UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"Title" image:[UIImage  imageNamed:@"singleicon.png"] tag:0];
    UITabBarItem *item1 = [[UITabBarItem alloc] initWithTitle:@"Reports" image:[UIImage imageNamed:@"doubleicon.png"] tag:1];
    UITabBarItem *item2 = [[UITabBarItem alloc] initWithTitle:@" New " image:[UIImage imageNamed:@"clockicon.png"] tag:2];
    UITabBarItem *item3=[[UITabBarItem alloc]initWithTitle:@"four" image:[UIImage imageNamed:@"dependenticon.png"] tag:3];
    UITabBarItem *item4=[[UITabBarItem alloc]initWithTitle:@"five" image:[UIImage imageNamed:@"toolicon.png"] tag:4];

    nav1.tabBarItem = item;
    nav2.tabBarItem = item1;
    nav3.tabBarItem = item2;
    nav4.tabBarItem=item3;
    nav5.tabBarItem=item4;

    //[item1 setBadge:@"25"];
    self.tabBarController=[[UITabBarController alloc]init];
    [self.tabBarController setViewControllers:[NSArray arrayWithObjects:nav1,nav2,nav3,nav4,nav5,nil]];

    self.report = self.tabBarController;
  // [self.report makeKeyAndVisible];

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}
4

5 回答 5

1

将所有编码放入按钮的操作中,然后按以下tabBarController方式:-

[self.navigationController pushViewController:tabBarController animated:YES]; 
于 2012-12-21T08:04:53.007 回答
1

使用以下代码:

     self.tabBarController.viewControllers = [NSArray arrayWithObjects:nav1,nav2,nav3,nav4,nav5,nil]];
     self.window.rootViewController = self.tabBarController;

更新:

也用于隐藏和显示UITabBar然后使用下面的代码..

只需将此方法放在AppDelegate.m文件中,当您想隐藏标签栏时,只需创建AppDelegate对象并调用以下hideTabBar方法

- (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];
}

- (void) showTabBar:(UITabBarController *) tabbarcontroller {

    int height = 436;

    [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];
}
于 2012-12-13T09:04:19.617 回答
0

如果您想以UITabBarController编程方式添加,则需要将您的添加tabbarcontroller 到您的ViewController. 你需要使用这条线,

[self.view addSubview:self.tabBarController.view];
于 2012-12-13T09:02:01.883 回答
0

您需要在错过了一行的视图中添加 tabBarController

于 2012-12-13T09:08:45.717 回答
0

我刚做了这个

[self.navigationController pushViewController:tabBarController animated:YES];
于 2013-07-12T06:50:58.997 回答