2012-07-17 84 views
0

目前我有一个设置与firstTabViewController托管5个按钮,每个加载表视图。当用户选择其中一个表格单元格时,它将打开第二个TabViewController,其中包含一组4个不同的选项卡按钮。我也嵌入了一个导航控制器。双UITabViewControllers使用故事板

我已经通过故事板设置了它,并提出了一些问题。首先,当它加载第二个TabViewController时,它会在第一个TabViewController中加载它,所以我有两组标签按钮在彼此之上。如果我将segue更改为模式,则会正确加载第二个TabViewController,但不允许我使用导航控制器返回。

有没有解决方案,或者我应该停止浪费我的时间使用故事板,而只是以编程方式设置它?

截图:Storyboard

+0

你可以发布你的故事板的屏幕截图? – mkral 2012-07-17 16:04:52

+0

@mkral新增了屏幕截图,只记下当前正在使用的底部。 – justMike 2012-07-17 17:40:25

回答

0

当我想隐藏的TabBar我用这个代码: 我忘了,我偷了它,但我敢肯定它是这里的SO。

- (void) hideTabBar:(UITabBarController *) tabbarcontroller { 


[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.5]; 
for(UIView *view in tabbarcontroller.view.subviews) 
{ 
    if([view isKindOfClass:[UITabBar class]]) 
    { 
     [view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)]; 
    } 
    else 
    { 
     [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)]; 
    } 

} 

[UIView commitAnimations]; 





} 

- (void) showTabBar:(UITabBarController *) tabbarcontroller { 

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.5]; 
for(UIView *view in tabbarcontroller.view.subviews) 
{ 

    if([view isKindOfClass:[UITabBar class]]) 
    { 
     [view setFrame:CGRectMake(view.frame.origin.x, 431, view.frame.size.width, view.frame.size.height)]; 

    } 
    else 
    { 
     [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 431)]; 
    } 


} 

[UIView commitAnimations]; 
} 
0

使用您的原始策略,然后在打开第二个选项卡栏视图时隐藏第一个选项卡视图控制器的选项卡栏。

+0

我试过使用'self.hidesBottomBarWhenPushed = YES;'其中工作隐藏第一个TabViewControllers并正确显示第二个TabViewControllers,但不幸的是,当我回去时,由于第二个TabViewControllers没有弹出堆栈,我不再有第一个TabViewControllers。 – justMike 2012-07-17 17:39:47