背景:
我的故事板流程: [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()
hero.modalAnimationType = .selectBy(presenting: .slide(direction: .down), dismissing: .slide(direction: .up))
但无济于事,所以我将其删除。
如果有人对为什么会发生这种情况有任何了解,请告诉我!