【问题标题】:Strange animation on the navigation bar during push推送时导航栏上的奇怪动画
【发布时间】:2018-09-25 00:30:54
【问题描述】:

我有一个像下面这样的故事板。

当我录制“Push ViewController 2”时,出现了一个奇怪的动画。

我将 NavigationController.view.backgroundColor 或 TabBarController.view.background 设置为白色。但它不起作用。 我不想将 navigationBar.translucent 设置为 NO。

我怎样才能摆脱它?

【问题讨论】:

  • 这是在模拟器上还是在设备上?
  • 模拟器和设备。
  • 如何将 UITabBarController 嵌入 UINavigationController。我认为将 Item1 和 Item2 分别嵌入 UINavigationController 应该可以解决您的问题。

标签: ios swift uinavigationcontroller uitabbarcontroller uinavigationbar


【解决方案1】:

当您在TabView application 中使用 NavigationController 时。将 NavigationController 单独嵌入到每个 ViewController 以避免异常行为是一种常见的做法,它还为您提供了一种更好的方法来控制您的 NavigationController 在单独的实例中。按照情节提要布局修复您奇怪的动画。

输出:

PS:@skJosh 评论也提到了同样的想法。

更新: 将以下代码粘贴到您的 DetailViewController 中以隐藏和取消隐藏您的 TabBar。

override func viewWillAppear(_ animated: Bool) {
    tabBarController?.tabBar.isHidden = true
}

override func viewWillDisappear(_ animated: Bool) {
    tabBarController?.tabBar.isHidden = false
}

【讨论】:

  • 如何隐藏标签栏?
【解决方案2】:

设置关注Animates勾选以取消勾选

【讨论】:

  • “我不想将 navigationBar.translucent 设置为 NO。”
【解决方案3】:

您没有在 navigationBar 下扩展视图控制器 (在导航中推送)(这就是为什么您会看到模糊的红色视图控制器 - 这是前一个- 在栏下方).

设置您的edgesForExtendedLayoutextendedLayoutIncludesOpaqueBars。在这种情况下,navigationBar.isTranslucent 也必须是 true

或者您可以关闭navigationBar 的半透明并将其颜色设置为您想要的任何颜色。

【讨论】:

  • @oolionoo 那你做错了。确保您设置了视图控制器的让我们说edgesForExtendedLayout = .topextendedLayoutIncludesOpaqueBars = true
猜你喜欢
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
  • 1970-01-01
  • 2023-04-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多