从横向视图返回后,导航栏高度太小

时间:2012-02-08 09:20:05

标签: objective-c ios cocoa-touch

我有一个同时包含标签栏和导航栏的应用。

我加载到我的视图,其中包含3个视图的菜单。 1幅风景和2幅肖像。

我进入纵向视图,导航栏非常完美。

view1

我进入我的风景视图,它就像我想要的那样。

view2

当我回到我的纵向视图时,导航栏现在变小了。

view3

当我进入我的横向视图时,会调用此代码:

-(void) viewWillAppear:(BOOL)animated
{

NSLog(@" viewWillAppear ");
[super viewWillAppear:animated];
appDelegate = (iGeo2AppDelegate *)[[UIApplication sharedApplication] delegate];
_originalTransform = [[appDelegate tabBarController].view transform];
_originalBounds = [[appDelegate tabBarController].view bounds];
_originalCenter = [[appDelegate tabBarController].view center];

CGAffineTransform landscapeTransform = CGAffineTransformMakeRotation(degreesToRadian(90));
landscapeTransform = CGAffineTransformTranslate (landscapeTransform, +80.0, +80.0);

[self.tabBarController.view setTransform:landscapeTransform];

self.tabBarController.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

self.tabBarController.view.bounds  = CGRectMake(0.0, 0.0, 480.0, 320.0);
self.tabBarController.view.center  = CGPointMake (240.0, 160.0);
[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight;

}

然后当我离开我的横向视图时,会调用此代码来重置所有内容:

-(void) viewWillDisappear:(BOOL)animated
{
NSLog(@" viewWillDisappear ");

self.navigationController.navigationBarHidden = NO; 
[super viewWillDisappear:animated];
[[appDelegate tabBarController].view setTransform:_originalTransform];
[[appDelegate tabBarController].view setBounds:_originalBounds];
[[appDelegate tabBarController].view setCenter:_originalCenter];
[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationPortrait;

}

有人可以建议我将导航栏重置到正确的高度需要做什么吗?

非常感谢, -code

1 个答案:

答案 0 :(得分:2)

隐藏条和自定义按钮我遇到了同样的问题。这不是一个真正的答案,而是一个解决方案。正如danipralea提到的那样,你必须隐藏它们并再次显示它们才有效。也许Apple知道这个问题,但他们还没有修复它。

这不是最好的,但对我来说它有效......