2015-01-02 4 views
-1

내 알림 센터 오늘 확장/위젯에서 나는 모든 시간 알림 센터가 활성화되는 UI의 일부를 업데이트해야합니다. 알림 센터를 사용 중이거나 백그라운드에있는 동안 업데이트 할 필요가 없습니다. 어떤 코드를 사용해야합니까?한 번만

viewDidLoadviewWillAppear은 모두 표시 될 때마다 호출됩니다. 예를 들어 위아래로 스크롤하면 다시 호출되므로 너무 자주 표시됩니다.

이 처음으로 표시되기 전에 (적어도 iOS 8.2 베타 버전에서는) 표시되지 않으며 iOS가 배경에있을 때도 UI를 업데이트 할 때마다 자동으로 호출됩니다. 어느 쪽도 적절하지 않다.

loadView은 위젯이 메모리에서 제거되지 않는 한 다시 호출되지 결코 단일 호출됩니다. 따라서 알림 센터를 열고 위젯을보고 알림 센터를 닫은 다음 나중에 다시 열면 메모리에서 지워졌는지 여부에 따라 다시 메서드를 호출 할 수 없습니다.

답변

0

난 그냥 viewDidLoad를 사용하고 여러 통화의 가능성에 대해 걱정하지 것입니다. 이 방법을 실행하는 데 시간이 오래 걸리지 않는다면 그렇게하지 않을 이유가 없습니다. [그것은 실행하는 데 시간이 오래 걸릴 않는 경우에, 당신의 오늘 확장 빨아 것, 그래서 그 문제를 해결한다.]

당신은 단지 그것을 한 번 발생 할 몇 가지 이유를 들어, 클래스에 BOOL 바르를 추가하는 경우 . YESinitWithCoder:으로 설정하고 viewDidLoad에서 값을 확인하십시오. YES 인 경우 업데이트를 수행하고 NO 값을 설정하십시오. 이미 NO 인 경우 업데이트를 건너 뜁니다.

+0

스크롤 할 때 메모리에서 완전히 제거 된 것 같습니다.로드 된 상태를 추적하기 위해 변수를 저장하면 아무런 효과가 없었습니다. 그것은 스냅 샷으로 흥미로운 것들을 해냅니다. 따라서 알림 센터를 탐색하는 동안 다시로드하지 않는 것이 불가능한 것처럼 보입니다. – Joey