如何为视图设置tabbar?

时间:2011-08-29 13:15:19

标签: iphone uiviewcontroller uitabbarcontroller uitabbar

我有一个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;

}

}

提前致谢...

1 个答案:

答案 0 :(得分:1)

我想您可以使用Tabbar应用程序模板创建一个新项目,这比自己实现它并且完美地工作更容易。

如果你想要在子视图或模态视图中使用tabbar,或者只是不在主视图中那么那就更容易了。在视图中,您希望tabbar将tabbar控制器拖放到xib中。设置各个标签的视图(仍然在IB中)并让tabbarcontroller出现,只需创建一个IBOutlet并将其连接到tabbarcontroller,并在希望它出现时将其添加为superview:[self.view addSubview:tabbarController]