2016-06-25 2 views
1

UINavigationController 기반 응용 프로그램에서 애니메이션을 복원하려고합니다.UINavigationController UIApplicationDidBecomeActiveNotification 후 이상한 동작

override func viewWillAppear(animated: Bool) { 
     super.viewWillAppear(animated) 
     self.animateButtons() 
    } 

내가 이러한 추가 : viewWillAppear에서 내가 다음을 수행

func addAnimation() { 
     self.animateButtons() 
    } 

    func restorePosition() { 
     self.restoreToOriginalPosition() 
    } 

그래서 설명하기 :

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(addAnimation), name: UIApplicationDidBecomeActiveNotification, object: nil) 

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(restorePosition), name: UIApplicationDidEnterBackgroundNotification, object: nil) 

을 그리고 이것은 나의 시작이다/애니메이션을 복원 할 때 컨트롤러 로드 됨 내 버튼 self.makeRoundQButtons이 내 viewDidLoad에 생성되었습니다. 그런 다음 viewWillAppear에서 움직입니다. 배경을 입력 할 때

그럼 난 원래 위치 self.restoreToOriginalPosition()을 복원하고 나는

지금이 "활성"보기에 잘 작동 ... 한 번 활성화 func addAnimation() {...} 다시 애니메이션. viewWillAppear에 NO animation이 발생해도 내 탐색 트리에서 "드릴 다운"할 때 배경과 활성을 다시 입력하고 "뒤로"버튼을 사용하여 "이전"보기로 이동합니다. 앞으로 나아가고 다시 돌아가서 모든 것이 잘 작동하면 ...

내가 뭘 잘못하고 있니?

답변

1

누군가가 궁금한 경우를 대비해 ... 문제는 내가 viewDidDissapear에있는 observer을 제거하지 않아서 모든 컨트롤러가 탐색 스택에서 한 번에 완료 되었기 때문입니다!