推送期间导航栏上的奇怪动画

时间:2018-04-15 00:34:23

标签: ios swift uinavigationcontroller uitabbarcontroller uinavigationbar

我有一个如下的故事板。

Storyboard

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

Strange animation on navigation bar

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

我怎样摆脱它?

3 个答案:

答案 0 :(得分:2)

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

enter image description here

<强>输出:

enter image description here

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

<强>更新 将代码粘贴到DetailViewController以隐藏和取消隐藏您的TabBar。

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

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

答案 1 :(得分:-1)

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

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

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

答案 2 :(得分:-1)

设置Animates检查以取消选中

enter image description here