我刚刚开始使用 iOS,所以假设知识不多。我们使用的是 xibs,而不是 Storyboard和自定义标签栏。当我们切换到新的导航 Controller 和关联的 View 时
self.addChildViewController(viewController)
viewController.view.frame = self.containerView.bounds
viewController.view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
self.containerView.addSubview(viewController.view)
viewController.didMoveToParentViewController(self)
selectedViewController = viewController
我们第一次这样做时,会出现一个动画来填充导航栏(来自左侧)和 View (来自上方)。第二次没有动画。无论如何,我可以跳过初始加载时出现的动画吗?
如果 View 尚未初始化,我假设 viewDidLoad 有一些内置的默认动画来解释这一点。我最初认为我可以在我的导航 Controller 上调用这个方法,当我在应用程序的开头创建它们时,就像这样
UINavigationController(rootViewController: AMRLoginViewController())
然后调用 viewDidLoad 遍历它们。
但这遇到了与委托(delegate)和可选值被设置为 nil 相关的错误。
最佳答案
viewDidLoad是系统调用的委托(delegate)方法。自己调用它从来都不是一个好主意。该动画听起来不像我所知道的任何系统动画。
我会查看 UIViewController 的生命周期方法 viewDidLayoutSubviews、viewWillAppear、viewDidAppear 并检查动画 block 内的帧或约束是否正在更改。
关于ios - Swift 自定义 TabBar Controller : stop the animation of the initial load layout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33468832/