0

기본 UIView (사용자가 실제로보고있는보기)가 변경되었음을 응용 프로그램 위임자에서 감지해야합니다.UIView 수정 감지

  1. 거기에 iOS 알림이 있습니까?
  2. 그렇지 않으면 타이머에서 함수를 실행할 수 있지만 기본보기 (사용자가 실제로보고있는보기)가 변경되었는지 확인하는 방법은 무엇입니까? 앱이 어떤 수준에서 변경하는 경우 뷰를 변경할 수 있습니다

-Fred

+1

@ user31 - 프레임이 변경되었거나, 하위 뷰가 추가 또는 제거되었거나, 다른 것으로 변경된 것의 의미는 무엇입니까? – Anurag

+0

"변경"의미 : 내 응용 프로그램은 각 tabbar에 대한 tabbarcontroller + navControllers로 구성되어 있습니다 ... 각 NavigationController는 ViewControllers로 구성되어 있습니다 ... 내 타이머 코드에서 currentView (사용자가보고있는 것을 감지하고 싶습니다.) 마지막 타이머 틱에서 수정되었습니다 ... – fvisticot

답변

-1

수있는 유일한 방법입니다.

+0

답변 해 주셔서 감사합니다 ...하지만 내가 뭘하고 싶은 ... 어떤 XCode 프로젝트에 클래스를 추가하고 싶습니다 그리고이 클래스는 (프로젝트 클래스에 대한 지식없이)보기가 변경되었음을 감지하고 있습니다. 내 생각은 현재 표시된보기가 바뀌 었는지 확인하는 타이머를이 추가 클래스에 포함시키는 것입니다 ...이 설명이 아직 명확하지 않기를 바랍니다. – fvisticot

0

일반적인 경우 알림을 사용해 볼 수 있습니다. 당신이 할당 해제의 방법

-(void)dealloc{ 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"ViewChanged" object:nil]; 
} 

에하고 "ViewChanged"을 수신 할 수있는 변화 대응되는 코드에 알림을 추가 할 수의 변화 "실종"신호를 원하는 UIView의에서

공고. 다음 코드로이 작업을 수행 할 수 있습니다.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(viewChanged) name:@"ViewChanged" object:nil]; 

-(void)viewChanged{ 
// do what ever you want after the view has changed 
} 
+0

답장을 보내 주셔서 감사합니다. 사실,이 수정을 추가하기 위해 각보기를 수정하지 않으려 고합니다. 제 애플리케이션이 제 3 자 라이브러리를 사용하고 있다면이 알림을 추가 할 수 없습니다. 그래서 2 ticks 사이의 변화를 분석하는 타이머를 사용하고 싶었습니다 ... – fvisticot

0

UIViewController 클래스에 대해 선택기를 선택해야합니다. 당신이 viewWill에 대해 생각해 볼 수있는 것처럼 당신이 만든 customViewWillAppear에 붙일 수 있습니다. 따라서 응용 프로그램이 viewWillAppear에 대한 호출을 생성하면 swizzled 메서드 (customViewWillAppear)가 호출됩니다. 따라서 사용자가 화면을 변경했음을 확인할 수 있습니다.

viewWillAppear 메서드로 작성된 항목을 실행하려면 실제 메서드를 호출하는 것을 잊지 마십시오.