我试图用一个隐藏的导航栏从视图控制器中推出一个视图控制器.
我试过各种各样的组合[[self navigationController] setNavigationBarHidden:YES animated:NO];在viewWillAppear,viewDidAppear,viewWillDisappear …等
// First View Controller @implementation FirstViewController - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[self navigationController] setNavigationBarHidden:YES animated:NO]; NSLog(@"[%@ viewWillAppear]",self); } @end // Second View Controller @implementation SecondViewController - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[self navigationController] setNavigationBarHidden:NO animated:NO]; NSLog(@"[%@ viewWillAppear]",self); } @end
没有什么工作我也尝试过自定义代码来“动画化”一个推送和弹出,这是有效的,但我失去了边缘滑动和查看平移.在我深入挖掘之前,只想确保我不会重新发明.
星巴克应用程序是我想要模仿的.
应用程序的根视图控制器(深色背景视图)是全屏幕,并注意到它没有UINavigationBar.但是当您点击其中一个按钮时,它会使用UINavigationBar来推送视图控制器(浅色背景视图).从那里,如果您点击“返回”箭头,它将使用导航栏查看控制器.互动式流行滑动手势也可以.
解决方法
有可能没有一起自己解决一个解决办法.这是你做的:
你的root viewController:
@implementation ViewController .... - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.navigationController setNavigationBarHidden:YES animated:animated]; } @end
并推送viewController:
@implementation SecondViewController - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.navigationController setNavigationBarHidden:NO animated:animated]; } @end
这样做.它也保持互动过渡的工作;)
然而,我觉得令人不安的是,这种类型的功能根本没有被苹果记录下来. – 您还可以隐藏和显示具有这些“呼叫点”的工具栏(viewWillAppear