我有一个view1和view2。在view1中,我设置了一个带有两个标签栏项目的动态标签栏。现在我想设置view1,即我在第一个标签栏项目中添加标签栏。在第二个标签栏项目我想设置view2。现在告诉我如何在第一个标签栏项目上设置view1,以便当用户点击标签栏item1然后再次显示具有相同数据的view1? 怎么样?我将此代码用于标签栏
- (void)viewDidLoad {
self.title = @"Business Details";
CGRect myTab =CGRectMake(0,368,320,49);
UITabBar *tabBar = [[[UITabBar alloc] initWithFrame:myTab] autorelease];
NSMutableArray *items = [[[NSMutableArray alloc] init] autorelease];
// Add a 'contacts' item
[items addObject:[[[UITabBarItem alloc] initWithTitle:@"Detail View" image:nil tag:1] autorelease] ];
// Add a 'More' item
[items addObject:[[[UITabBarItem alloc] initWithTitle:@"Review" image:nil tag:2] autorelease] ];
// Put the items in the tab bar
tabBar.items = items;
// Setup this object to respond to tab changes
tabBar.delegate = self;
[self.view addSubview:tabBar];
[super viewDidLoad];
}
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
switch (item.tag ) {
case 1:
dv=[[[DetailView alloc]initWithNibName:@"DetailView" bundle:nil]autorelease];
[self.navigationController pushViewController:dv animated:YES];
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil] autorelease];
break;
case 2:
review_view=[[[Review alloc]initWithNibName:@"Review" bundle:nil]autorelease];
[self.navigationController pushViewController:review_view animated:YES];
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil] autorelease];
default:
break;
}
}
提前致谢...
答案 0 :(得分:1)
我想您可以使用Tabbar应用程序模板创建一个新项目,这比自己实现它并且完美地工作更容易。
如果你想要在子视图或模态视图中使用tabbar,或者只是不在主视图中那么那就更容易了。在视图中,您希望tabbar将tabbar控制器拖放到xib中。设置各个标签的视图(仍然在IB中)并让tabbarcontroller出现,只需创建一个IBOutlet并将其连接到tabbarcontroller,并在希望它出现时将其添加为superview:[self.view addSubview:tabbarController]