在UIApplicationDidBecomeActiveNotification之后的UINavigationController奇怪的行为

时间:2016-06-25 14:03:10

标签: ios uinavigationcontroller swift2

我正在尝试在基于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动画,但视图仍然存在。如果我前进然后再回来一切正常......

我做错了什么?

1 个答案:

答案 0 :(得分:1)

好的,以防有人想知道......问题是我没有删除observer viewDidDissapear并且所有动画都是立即完成的,因为所有控制器都在导航堆栈中! / p>