[英]iOS - UINavigationController - NavigationBar sliding in together with UIViewController
我有两个UIViewControllers,A和B。
A隐藏了UINavigationBar,而B没有隐藏。 从A到B动画(使用默认动画)时,导航栏必须可见。 导航栏只是在某个时候弹出(viewWillAppear或viewDidAppear),而不是随UIViewController B一起滑入。
从B转到A时,导航栏会平滑滑出。
从A到B设置动画时,如何获得所需的效果?
您可以尝试以下方法:
使用实例变量执行此操作:
self.navigationController setNavigationBarHidden:hide animated:animated];
_shouldHideStatusBar = hide;
并实现以下功能:
- (BOOL)prefersStatusBarHidden{
return _shouldHideStatusBar;
}
setNavigationBarHidden:animated函数将自动调用preferredsStatusBarHidden函数。 如果没有,则可以使用以下UIViewController的方法调用它:
[self setNeedsStatusBarAppearanceUpdate];
当然,您可以使用以下方式选择隐藏动画样式的状态栏:
- (UIStatusBarAnimation) preferredStatusBarUpdateAnimation {
return UIStatusBarAnimationSlide;
}
让我知道是否有帮助。 祝好运!!
(我在这里得到了这个答案: 如何同时滑动状态栏和导航栏? )
在ViewController B中,只需执行以下操作:
-(void) viewWillAppear:(BOOL)animated {
[super viewWillAppear: animated];
[self.navigationController setNavigationBarHidden: NO animated: YES];
}
我不知道在进行全视图控制器转换时,它还可以控制动画。 我以为它只能控制动画,导航栏从上到下再返回。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.