2010-07-28 4 views
11

다음 번에 앱이 입력되면 보안되지 않은 데이터가 표시되지 않도록 애플리케이션이 전환되기 전에보기를 지우고 시작 이미지를 변경하고 싶습니다.iOS 4의 Circumvent 스크린 샷

iOS 4는 applicationDidEnterBackgroundapplicationWillResignActive을 제공하지만 어느 것도보기를 지울 수없는 스크린 샷을 찍을 수없는 것으로 보입니다.

+2

당신이 확실합니까? 스크린 샷을 찍기 전에'-applicationDidEnterBackground :'가 호출됩니다. – kennytm

+0

맞습니다. 내 실수. – akaru

답변

8

-applicationDidEnterBackground 스크린 샷 전에 호출됩니다. 나는 단순히 내 견해를 부적절하게 숨기고 있었다.

보기를 지우는 간단한 방법은 내 UIView에 숨겨진 속성을 설정하는 것이 었습니다.

+1

홈 버튼과 전원 버튼 (기기의 오른쪽 상단에 있음)을 함께 사용하여 스크린 샷을 캡처하려고 할 때 iOS (iPhone OS 6 사용) 애플리케이션의 앱 대행자 메소드가 표시되지 않습니다. 도와주세요. – kushalrshah

1

초기화시 선언 된 전체 배경 이미지를 사용하여이 문제에 대한 빠른 해결책을 제공하는 코드 스 니펫을 추가하면됩니다.

알림에 등록하면 각보기의 특정 내용에 대한보다 정교한 숨기기를 수행 할 수 있으며보기에서 숨길 특정보기 (레이블)를 숨길 수 있습니다.

또 다른 해결책은 어떤 viewcontroller가 보이는지 확인하고이 뷰 컨트롤러의 뷰의 다른 스크린 샷을 데이터를 표시하지 않고 전환하는 것입니다.

가장 쉬운 방법 :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    UIImageView *backgroundView_ = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]]; 
    self.backgroundView = backgroundView_; 
    [backgroundView_ release]; 

    // Add other controllers views 
    // ... 

    [self.window bringSubviewToFront:self.backgroundView]; 
    self.backgroundView.hidden = YES; 
    [self.window makeKeyAndVisible]; 
} 

- (void)applicationDidBecomeActive:(UIApplication *)application { 
    self.backgroundView.hidden = YES; 
    } 

- (void)applicationDidEnterBackground:(UIApplication *)application { 
    self.backgroundView.hidden = NO; 
}