iPhone:Tabbar隐藏时,从TableView推送到UIViewController
问题描述:
我有四个选项卡栏项目在视图的底部,我有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。我在那里看到全屏视图。每次点击每个标签项目时,我都希望看到底部的标签栏。 这里可能是什么问题?有人遇到这个问题,请向我分享您的建议?
谢谢。
答
您最初使用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];
是您的代码是否正确?我试过这种方式,但是观察到两个问题。一个是,TableView受到了冲击,而不是滚动。其次是,我如何添加Tabbar项目,因为我只有一个TableView并且只访问所有三个Tabbar项目的单个表格视图,除了最后一个Tabbar项目。 – Getsy 2010-05-05 15:50:17
嗨,我有一个TableView,并在底部视图中编程添加TabBar,因为我写在实际的后消息。我在单击三个Tabbar项目时调用同一个TableView本身。但对于第四个Tabbar项目,我需要推送到另一个视图控制器。在这种情况下,我需要将Tabbar始终保留在底部,但在调用pushViewController时Tabbar会被删除。有人可以正确引导我吗? – Getsy 2010-05-05 17:53:36
请检查:http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.3124430053.03124430055,斯坦福大学免费iPhone开发课程,第7讲是关于Tab Bar。 – medopal 2010-05-06 05:16:53