【问题标题】:Pushing onto the navigation stack with (or without) the navigation controller's bar使用(或不使用)导航控制器的栏推送到导航堆栈
【发布时间】:2016-06-04 12:48:00
【问题描述】:

我创建了一个视图控制器,它需要能够使用自己的导航栏,但仍包含在导航堆栈中。我已经解决了这个问题,只需隐藏UINavigationController 的导航栏,然后在每个视图控制器中添加一个假导航栏。有了这个,我每次推送视图控制器时都会得到以下外观。

我想要的是一些推送导致使用传入视图控制器的导航栏(图 1),然后其他推送导致此

【问题讨论】:

  • 那么问题或疑问是什么?
  • 我需要能够推送到导航堆栈,以便只有一些视图控制器使用导航控制器中的导航栏。看看图片就知道了。图 1 传入的 VC 带来了自己的导航栏,而在图 2 中,VC 只是像平常一样使用导航控制器的栏。如何在传入的 VC 中选择性地选择何时使用导航控制器的栏以及何时使用自定义栏?
  • 也许更好的表达方式是,我希望一些视图控制器完全替换整个视图(除了标签栏),还有一些使用导航控制器的栏定期推送。

标签: ios swift uinavigationcontroller uinavigationbar pushviewcontroller


【解决方案1】:

您需要在哪个视图控制器上使用该视图控制器上的自定义导航栏,在viewWillAppear 中隐藏导航栏并在viewDidDisappear 中再次显示。因此,对于特定的视图控制器,它将被隐藏。并在 viewDidload 的视图控制器中显示您的自定义导航栏

【讨论】:

  • 我相信我已经尝试过了,我得到了一个非常不受欢迎的动画,其中导航控制器的栏继续移动,就好像它就在新视图控制器的正下方一样。如果我得到相同的结果,我会再试一次并发布这个解决方案有什么问题的 GIF 或图片。如果您在手机上打开 Twitter 应用程序,您会看到导航控制器的栏保持不变,即使在推送到不使用导航控制器栏的视图控制器时也是如此。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-01
  • 2015-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-17
相关资源
最近更新 更多