【问题标题】:Hide navigation bar in root view?在根视图中隐藏导航栏?
【发布时间】:2012-07-07 19:59:38
【问题描述】:

我有一个应用程序,我试图复制我看到的 Apple Store 应用程序所做的事情,其中​​第一个视图没有导航栏,但后续视图有。

我尝试了将 navigationBarHidden 设置为 YES 和 NO 的各种组合来管理它何时可见,但关键问题似乎是在过渡期间,它要么可见要么不可见,而在 Apple Store 应用程序中,导航栏不在主视图中,而是从右侧与子视图一起滑入。

我正在寻找一种让导航栏与子视图一起滑入的方法,而不是在转换之前或之后出现(动画或不显示)。

【问题讨论】:

  • 您是在使用情节提要还是在使用 xib 文件?

标签: iphone cocoa-touch


【解决方案1】:

原来我只是没有找到隐藏和显示导航栏的正确位置。

我使用了how to hide navigationbar when i push from navigation controller? 的答案,现在对我来说效果很好。

【讨论】:

    【解决方案2】:

    如果您在第一个选项卡“精选”上谈论他们在做什么,如果您点击列表中带有披露指示符的项目之一。它似乎从右到左在另一个视图中滑动。我认为他们正在使用动画来交换两个视图控制器。滑入的是导航控制器,这就是 NavBar 似乎从右侧滑入的原因。

    你会做这样的事情来获得这种效果:

    // First set up a view controller with frame set off to the right of the screen.
    // Then animate it sliding to the left by setting its frame x = 0;
    
    frame.origin.x = 0;
    [UIView animateWithDuration:.4 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut
        animations:^{
            vc.view.frame = frame;
        }
        completion:nil];
    

    【讨论】:

      【解决方案3】:

      在您的主视图中,初始化 childViewController。然后在childViewController上设置导航栏,推送视图控制器。

      ChildVC *childVC = [[ChildVC alloc] initWithNibName:@"ChildVC" bundle:nil];
      [self setChildVC:childVC];
      childVC.navigationController.navigationBarHidden = NO;
      [self.navigationController pushViewController:childVC animated:YES];
      

      【讨论】:

      • 这对我来说是让导航控制器立即出现而不是滑入。
      猜你喜欢
      • 1970-01-01
      • 2022-09-30
      • 2015-11-14
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      相关资源
      最近更新 更多