ios - 转换到 ViewController 会离开前一个 View 的导航栏

标签 ios objective-c uinavigationbar pushviewcontroller catransition

我希望通过从 stackoverflow 获得的这种转换以编程方式导航到 ViewController。

  CATransition* transition = [CATransition animation];
  transition.duration = .45;
  transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
  transition.type = kCATransitionFade;
  self.navigationController.view.layer addAnimation:transition forKey:kCATransition];

  UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
  AddDeviceViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"AddDeviceViewController"];
  self.navigationController pushViewController:vc animated:NO];

但是当它转换到 View 时,前一个 View 的导航栏会保留。如何使过渡 View 的导航栏出现而不是前一个?

最佳答案

实现viewWillAppearviewWillDisappear在您的 AddDeviceViewController .在 viewWillAppear隐藏 navigation barviewWillDisappear显示 navigation bar .此机制仅隐藏 AddDeviceViewController 的导航栏.就像是,

 -(void)viewWillAppear:(BOOL)animated{

     self.navigationController.navigationBar.hidden = YES;
 }

 -(void)viewWillDisappear:(BOOL)animated{

       self.navigationController.navigationBar.hidden = NO;
 }

关于ios - 转换到 ViewController 会离开前一个 View 的导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40298968/

相关文章:

ios - 使用导航 Controller 的优点

ios - Swift 中多个过滤器的 Firebase 查询

ios - 更新titleLabel UIButton

iphone - iPhone 中的 Foursquare 集成

ios - iPhone 6 vs> iPhone 5导航栏高度

ios - 使用 swift 在左上角的导航栏上添加 Logo

ios - 错误 : Fatal: Not a git repository (or any of the parent directories): . git

ios - 图 block 大小,视网膜与非视网膜,iPad 与 iPhone

objective-c - 手动内存管理 VS ARC

objective-c - 由于辅助线程尝试更新UI而导致应用程序崩溃