我正在尝试在基于UINavigationController的应用上恢复我的动画。
在viewWillAppear
我执行以下操作:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.animateButtons()
}
我还添加了以下内容:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(addAnimation), name: UIApplicationDidBecomeActiveNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(restorePosition), name: UIApplicationDidEnterBackgroundNotification, object: nil)
这是我的开始/恢复动画:
func addAnimation() {
self.animateButtons()
}
func restorePosition() {
self.restoreToOriginalPosition()
}
所以解释一下:当加载控制器时,我在我的self.makeRoundQButtons
中创建了按钮viewDidLoad
。然后我在viewWillAppear
中制作动画。
然后在输入背景时,我会恢复其原始位置self.restoreToOriginalPosition()
,并在激活func addAnimation() {...}
后再次为其设置动画...
现在这对"活跃"视图。当我"钻#34;在我的导航树上,输入背景并再次激活,并使用"返回"按钮导航到任何"之前的"虽然viewWillAppear
被称为NO动画,但视图仍然存在。如果我前进然后再回来一切正常......
我做错了什么?
答案 0 :(得分:1)
好的,以防有人想知道......问题是我没有删除observer
viewDidDissapear
并且所有动画都是立即完成的,因为所有控制器都在导航堆栈中! / p>