导航防止动画过渡的控制器

时间:2020-07-21 02:23:31

标签: swift uinavigationcontroller segue transition

背景

我的故事板流程: [Nav VC] -> [VC1] -> [Home VC] -> [Settings VC] -> ...

从Home VC切换到Settings VC时,我目前正在使用Hero过渡动画库来实现下拉效果(从上到下)。在情节提要中,确保在我的Nav以及Home和Settings VC上启用了hero。至于实际的序列代码,这就是我在家用VC中所拥有的:

   //in Home View Controller
  override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if(segue.identifier == "goToEditScreen") {
            let editVC = segue.destination as! ProfileMenuViewController
            //set the animation style
            editVC.hero.modalAnimationType = .selectBy(presenting: .slide(direction: .down), dismissing: .slide(direction: .up))
            editVC.documentID = self.documentID
        }
    }

问题:

自定义动画似乎并未触发,而是默认为基本的从左到右顺序。但是,在情节提要中,如果取消选择Navigation VC作为“初始视图控制器”,而是将其更改为“ VC1”,则会使用Hero动画(但要注意,导航栏已从应用程序中删除)。

我尝试过的事情:

像上面提到的那样,我尝试将初始VC切换为不是Nav VC,并且除了我失去了导航栏外,它似乎可以正常工作。我还尝试将相同的Hero代码添加到viewDidLoad()

的Settings VC中
hero.modalAnimationType = .selectBy(presenting: .slide(direction: .down), dismissing: .slide(direction: .up))

但无济于事,所以我将其删除。

如果有人对为什么会发生这种情况有任何了解,请告诉我!

0 个答案:

没有答案