我想在页面更改时禁用导航栏动画。
root viewController
- (BOOL)prefersStatusBarHidden{
return YES;
}
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];,
}
推送viewController
- (BOOL)prefersStatusBarHidden{
return NO;
}
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO animated:animated];,
}
如果两个页面statusBarHidden等于NO或YES,则此方法有效,但当我禁用其中一个时,会出现问题。由于我的声誉很低,我无法上传图片请查看图片链接。 https://www.facebook.com/photo.php?fbid=154038544933435&set=a.154038594933430.1073741827.100009818700445&type=1&theater
答案 0 :(得分:0)
实施prefersStatusBarHidden
应该可以解决问题。无需覆盖viewWillAppear:animated
,因为iOS会自动从一个状态栏状态动画到下一个状态栏。
务必设置"查看基于控制器的状态栏外观"在您的Info.plist中为YES。
就导航栏而言。如果您使用故事板并使用Segueues,则可以从一个导航控制器转换到另一个导航控制器。如果导航控制器A具有可见的导航栏并且导航控制器B具有隐藏的导航栏,则iOS将自动为您导航导航栏。
答案 1 :(得分:0)
你应该使用它,它在标签手势上为我工作
NSTimer *timer;
if([UIApplication sharedApplication].statusBarHidden == YES)
{
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
timer= [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(hideStatusbar) userInfo:nil repeats:NO];
}
调用方法
-(void)hideStatusbar
{
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}