视图出现模态视图动画而不是显示(推送)动画

View appears with modal view animation instead of show (push) animation

我最近将我的应用程序从 iOS 8.3 更新到 iOS 9。 在用代码修复了各种错误后,我设法编译了应用程序并运行它,当我注意到以下问题时。

当我执行一个 segue 单击时,例如,一个 UIButton,加载了 segue 的视图会出现模态视图的动画(从底部滑动到顶部),但在故事板中,segue 是 Show (e.g. Push)。此外,导航控制器的后退按钮不再出现。

当我执行 segue 时,控制台打印此信息:

Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior (<UISearchController: 0x7ffde14866b0>)

问题似乎只出现在一个视图中,当加载其他视图时,我尝试将其他视图设置为初始视图控制器并且所有工作。

看了项目中的Storyboard,发现问题出在每次Push segue后多了navigation controller。也就是说,除了初始(根)导航控制器之外,故事板还包含一个 UINavigationController 作为有问题的 Push segues 的目的地。删除这些额外的导航控制器(但保留根导航控制器)解决了问题。