Ios 当带有动画的pushViewcontroller为真时,UINavigationBar立即消失

Ios 当带有动画的pushViewcontroller为真时,UINavigationBar立即消失,ios,swift,swift2,uicollectionview,uinavigationbar,Ios,Swift,Swift2,Uicollectionview,Uinavigationbar,我试图使导航栏在显示时对一个视图控制器透明。它起作用了。但是,当我从父视图控制器重新进入视图控制器时,动画似乎不正确 第一次导航栏以动画方式停留和消失,直到第二个视图完全显示。但是,第二次及以后,导航栏完全消失,第二个视图以动画形式显示 我在这里创建了一个最小项目来说明问题: 问题复制步骤: 单击“颜色”视图控制器中的一个代码块 单击后退按钮 再次单击其中一个代码块 看到问题了吗 第一次单击“颜色视图控制器”中的一个颜色块时,过渡动画效果良好,符合预期。但是,当从第二个视图控制器返回后再次单击其

我试图使导航栏在显示时对一个视图控制器透明。它起作用了。但是,当我从父视图控制器重新进入视图控制器时,动画似乎不正确

第一次导航栏以动画方式停留和消失,直到第二个视图完全显示。但是,第二次及以后,导航栏完全消失,第二个视图以动画形式显示

我在这里创建了一个最小项目来说明问题:

问题复制步骤:

  • 单击“颜色”视图控制器中的一个代码块
  • 单击后退按钮
  • 再次单击其中一个代码块
  • 看到问题了吗
  • 第一次单击“颜色视图控制器”中的一个颜色块时,过渡动画效果良好,符合预期。但是,当从第二个视图控制器返回后再次单击其中一个颜色块时,可以注意到导航栏区域立即变为黑色,然后显示第二个视图控制器的动画开始。您可以在模拟器中切换慢速动画,以便更清楚地看到问题


    任何帮助都将不胜感激

    您可以在更改幻灯片时删除动画。我也有同样的问题,这就是我所做的,因为我没有找到更好的解决方案

    在ViewController中: 将
    self.navigationController?.pushViewController(colorVC,动画:true)
    设置为
    animated false

    在ColorViewController中: 替代“后退”按钮以禁用“后退”按钮的动画。因此,在viewDidLoad中执行以下操作:

    self.navigationItem.hidesBackButton = true
    let newBackButton = UIBarButtonItem(title: "New back button", style: UIBarButtonItemStyle.Bordered, target: self, action: "back:")
    self.navigationItem.leftBarButtonItem = newBackButton
    
    然后创建新的返回功能:

    func back(sender: UIBarButtonItem) {
        // Go back to the previous ViewController without an animation
        self.navigationController?.popViewControllerAnimated(false)
    }
    

    这是你的项目和我的更新代码,你可以下载。

    我找到了一个简单的解决方案,使动画看起来不错。我只需将窗口的
    backgroundColor
    更改为
    white
    ,因为我的应用程序中导航栏的背景色为白色。下面是我添加的代码

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.
    
        window?.backgroundColor = UIColor.whiteColor()
    
        return true
    }
    

    同样的解决方案也适用于类似情况下与问题相关的UITabBar

    嗨,Rashwan,谢谢你的回答。我认为不做动画是我们的一个选择。然而,我们真的很喜欢动画。我以前测试过没有动画,在应用程序中看起来不太好。所以动画对我们来说是必须的。再次感谢您的帮助。我正在考虑的另一个解决方案是以自定义方式完成第二个视图中的两个按钮。并且只将导航栏设置为透明。我稍后再试试。