我在基于视图的应用程序中通过nib创建了一个带有三个项目的tabbar 我希望在视图出现时默认选择第一个项目。
问题是item1显示已选中,但它没有加载它有权执行的视图。当我们点击该项目时,视图就会出现。请帮我解决这个问题。这是我的代码......
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
tabBar.delegate = self;
[tabBar setSelectedItem:[tabBar.items objectAtIndex:0]];
}
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
NSLog(@"didSelectItem: %d", item.tag);
if (item.tag==1) {
ImagesOverlay=[[UIView alloc]initWithFrame:CGRectMake(0, 210, 320, 250)];
ImagesOverlay.backgroundColor=[UIColor grayColor];
[self.view addSubview:ImagesOverlay];
}else if (item.tag==2) {
relatedOverlay=[[UIView alloc]initWithFrame:CGRectMake(0, 210, 320, 250)];
relatedOverlay.backgroundColor=[UIColor redColor];
[self.view addSubview:relatedOverlay];
}else if(item.tag==3){
//other condition
}
}
答案 0 :(得分:1)
刚刚完成..
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
tabBar.delegate = self;
[tabBar setSelectedItem:[tabBar.items objectAtIndex:0]];
[self activateTab:1];
}
- (void)activateTab:(int)index {
switch (index) {
case 1:
//condition
break;
case 2:
//condition
break;
default:
break;
}
}
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
NSLog(@"didSelectItem: %d", item.tag);
[self activateTab:item.tag];
}
答案 1 :(得分:0)
您似乎需要对UITabBarController
的工作方式进行更多研究。您应该传递UIViewController
的实例,而不是手动更改视图。阅读课程参考: