2012-09-26 3 views
2

일부 중요한 데이터가 앱 내에서 내 사용자에게 표시되고 사용자가 홈 버튼을 클릭하여 앱으로 돌아올 때 Apple은 홈 버튼을 누르기 전에 장치에서 마지막 화면의 그림을 표시합니다.시스템에서 "재개시 사용"스냅 샷을 사용하지 못하게 함

이 효과를 완전히 비활성화 할 수있는 방법이 있습니까? 백그라운드 활성화시 이미지를 표시하는 방법을 보았습니다.이 방법은 사용자가 앱으로 돌아 왔을 때 스냅 샷 대신에 처음에 표시되는 뷰의 상단에 표시되지만 전체적으로 사라져야 할 필요가 없습니다. 사용자가 앱을 다시 방문하면 스냅 샷이나 다른 화면 캡처를 저장하십시오. 누구든지이 일을 할 수있는 방법을 제안 할 수 있습니까?

홈 버튼 + 수면 버튼을 눌러 스크린 샷을 찍는 것에 대해 이야기하는 것이 아닙니다.

답변

1

응용 프로그램 대리인의 applicationWillResignActive: 메서드에서 UIImageView를 눈에 띄지 않는 팝업으로 만들 수 있습니다. 예를 들어 애플리케이션에 사용자의 비밀번호가 있다고 가정 해 보겠습니다. 누군가가 사용자 뒤를 걷고 있으며 사용자가 홈 버튼을 누릅니다. 이것은 applicationWillResignActive: 메서드를 호출합니다.이 메서드는 맵보기를 표시하므로 워커가 사라지고 사용자가 응용 프로그램을 다시 열면 사용자 암호의 간단한 스냅 샷 대신 맵보기로 바로 열립니다. 이것은 당신이 그것을 구현하는 방법입니다 :

//AppDelegate.m 
- (void)applicationWillResignActive:(UIApplication *)application { 

    UIImageView *image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"picOfMap.png"]]; 
    image.frame = self.view.frame; 
    image.contentMode = UIViewContentModeCenter; 
    [self.window.rootViewController.view addSubview: image]; 
} 

을 그리고 여기 applicationWillResignActive:가 호출 될 때의 설명입니다 :

이 방법은 사용자의 응용 프로그램이에 활성 이동할 예정임을 알려이라고

비활성 상태. 일시적인 일시적인 방해 (수신 전화 또는 SMS 메시지와 같은) 또는 사용자가 응용 프로그램을 종료하고 백그라운드 상태로의 전환을 시작할 때 이러한 현상이 발생할 수 있습니다. 비활성 상태의 응용 프로그램은 계속 실행되지만 들어오는 이벤트는 응답자에게 전달되지 않습니다. (UIApplicationDelegate Reference)

가 나는 앱 위임에서 작업에 익숙하지이기 때문에 코드에서 몇 가지 버그 수 있지만, 당신이해야 할 일의 요점입니다 수 있습니다.

+0

그러나 사용자가 앱을 다시 방문 할 때 다시보기를 원합니다. 사용자가 홈 버튼을 클릭하고 돌아올 때 홈 버튼 누르기 (스냅 샷) 이전에 보았던 화면이든 화면에 강제로 표시 될지 여부와 상관없이 스냅 샷이 전혀 표시되지 않도록합니다. 홈 프레스 직전 (위의 솔루션). 눈에 띄지 않던간에 아무런 이미지/뷰가 존재하지 않기를 바란다. –

+0

@JohnBaum - 사용자가 닫은 후에 응용 프로그램이 다시 열리면 스냅 샷은 표시된 민감한 데이터가 아닌 "눈에 띄지 않는"이미지가됩니다 . 'applicationWillEnterForeground :'에 이미지를 제거하는 코드를 넣을 수 있기 때문에 사용자는 원래 화면으로 되돌아갑니다. 기본적으로 내 모든 코드는 민감한 데이터의 이전 스냅 샷을 의미없는 부드러운 이미지로 대체합니다. 그것은 다른 어떤 것에도 영향을 미치지 않습니다. – pasawaya

+0

@JohnBaum 무엇을 보여주고 싶습니까? 그 주석 에서처럼, 당신은 빈 화면을 원합니다. – nycynik