Ios 在iPhone上的横向视图中,在UINavigationBar和uitabar全屏之间进行查看

Ios 在iPhone上的横向视图中,在UINavigationBar和uitabar全屏之间进行查看,ios,uitabbarcontroller,fullscreen,uitabbar,landscape,Ios,Uitabbarcontroller,Fullscreen,Uitabbar,Landscape,我有一个uitabarcontroller包含不同的UINavigationControllers。其中一个UINavigationController的rootViewController在纵向模式下显示UINavigationBar和uitabar之间的图表(使用ShinobiCharts)。当转到横向时,我想隐藏UINavigationBar和uitabar并全屏显示我的图表。导航栏没有问题,我不知道如何为选项卡栏设置。我可以隐藏它,但是隐藏后调整图表的大小并不能使它像我希望的那样大 这似

我有一个
uitabarcontroller
包含不同的
UINavigationControllers
。其中一个
UINavigationController
rootViewController
在纵向模式下显示
UINavigationBar
uitabar
之间的图表(使用
ShinobiCharts
)。当转到横向时,我想隐藏
UINavigationBar
uitabar
并全屏显示我的图表。导航栏没有问题,我不知道如何为选项卡栏设置。我可以隐藏它,但是隐藏后调整图表的大小并不能使它像我希望的那样大

这似乎是一个非常直接的需求,我打赌有一个相当简单的解决方案,不是吗?

看看

实际上,您可以更改选项卡栏视图的大小,使选项卡栏位于窗口边界之外

- (void)hideTabBar:(UITabBarController *) tabbarcontroller
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];

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.3];

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];
}
这里的问题是,简单地隐藏
选项卡栏
并不是一个解决方案,因为嵌套的
子视图
不会调整大小

当我想隐藏
选项卡栏
并调整其
子视图
的大小时,我使用上述代码。在按下
viewController
(带图表)之前,您必须隐藏/显示帧