我有一个同时包含标签栏和导航栏的应用。
我加载到我的视图,其中包含3个视图的菜单。 1幅风景和2幅肖像。
我进入纵向视图,导航栏非常完美。
我进入我的风景视图,它就像我想要的那样。
当我回到我的纵向视图时,导航栏现在变小了。
当我进入我的横向视图时,会调用此代码:
-(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
答案 0 :(得分:2)
隐藏条和自定义按钮我遇到了同样的问题。这不是一个真正的答案,而是一个解决方案。正如danipralea提到的那样,你必须隐藏它们并再次显示它们才有效。也许Apple知道这个问题,但他们还没有修复它。
这不是最好的,但对我来说它有效......