2010-05-05 55 views
0

我有四个选项卡栏项目在视图的底部,我有TableView的底部。我正在通过编程方式添加Tab栏和项目(请参阅下面的代码),而不是通过I.B。 点击前三个标签栏项,将在同一个TableView本身显示数据。但点击最后一个标签栏项目将推送到另一个UIViewcontroller并在那里显示数据。这里的问题是,当我点击最后一个标签栏项目时,推到viewController,主“标签栏”正在被删除。iPhone:Tabbar隐藏时,从TableView推送到UIViewController

标签条码:

UITabBar *tabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 376, 320, 44)]; 
item1 = [[UITabBarItem alloc] initWithTitle:@"First Tab" image:[UIImage imageNamed:@"first.png"] tag:0]; 
item2 = [[UITabBarItem alloc] initWithTitle:@"Second Tab" image:[UIImage imageNamed:@"second.png"] tag:1]; 
item3 = [[UITabBarItem alloc] initWithTitle:@"Third Tab" image:[UIImage imageNamed:@"third.png"] tag:2]; 
item4 = [[UITabBarItem alloc] initWithTitle:@"Fourth Tab" image:[UIImage imageNamed:@"fourth.png"] tag:3]; 
item5 = [[UITabBarItem alloc] initWithTitle:@"Fifth Tab" image:[UIImage imageNamed:@"fifth.png"] tag:4]; 
NSArray *items = [NSArray arrayWithObjects: item1,item2,item3,item4, item5, nil]; 
[tabBar setItems:items animated:NO]; 
[tabBar setSelectedItem:item1]; 
tabBar.delegate=self; 
[self.view addSubview:tabBar]; 

推控制器代码从最后一个标签栏项目点击:

myViewController = [ [MyViewController alloc] initWithNibName:@"MyView" bundle:nil]; 
     myViewController.hidesBottomBarWhenPushed=NO; 
     [[self navigationController] pushViewController:myViewController animated:NO]; 

我没有看到底部的标签栏时,我把我目前的TableView到myViewController。我在那里看到全屏视图。每次点击每个标签项目时,我都希望看到底部的标签栏。 这里可能是什么问题?有人遇到这个问题,请向我分享您的建议?

谢谢。

回答

0

您最初使用TabBar本身(作为视图)作为主视图。

使用UITabBarController这样的:

//tabBarController is defined in the interface (the .h file) 
tabBarController = [[UITabBarController alloc]init]; 

firstViewController = [[UIViewController alloc] init]; 
UITabBarItem *item1 = [[[UITabBarItem alloc]initWithTitle:@"First" image:nil tag:1] autorelease]; 
[firstViewController setTabBarItem:item2]; 

secondViewController = [[SecondViewController alloc]init]; 
UITabBarItem *item2 = [[[UITabBarItem alloc]initWithTitle:@"Sec" image:nil tag:1] autorelease]; 
[secondViewController setTabBarItem:item2]; 

//init the tab bar controller populated with two view controllers 
[tabBarController setViewControllers:[NSArray arrayWithObjects:firstViewController,secondViewController,nil] animated:NO]; 

[window addSubview:tabBarController.view]; 
+0

是您的代码是否正确?我试过这种方式,但是观察到两个问题。一个是,TableView受到了冲击,而不是滚动。其次是,我如何添加Tabbar项目,因为我只有一个TableView并且只访问所有三个Tabbar项目的单个表格视图,除了最后一个Tabbar项目。 – Getsy 2010-05-05 15:50:17

+0

嗨,我有一个TableView,并在底部视图中编程添加TabBar,因为我写在实际的后消息。我在单击三个Tabbar项目时调用同一个TableView本身。但对于第四个Tabbar项目,我需要推送到另一个视图控制器。在这种情况下,我需要将Tabbar始终保留在底部,但在调用pushViewController时Tabbar会被删除。有人可以正确引导我吗? – Getsy 2010-05-05 17:53:36

+1

请检查:http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.3124430053.03124430055,斯坦福大学免费iPhone开发课程,第7讲是关于Tab Bar。 – medopal 2010-05-06 05:16:53