2013-12-19 6 views
0

Мое приложение относится к конфиденциальным данным, и я хочу, чтобы данные, показанные на экране, были полностью скрыты, как только пользователь перейдет на задний план. Я пытаюсь добиться этого, поставив вид сверху все другие виды:защищенные отображаемые данные при переходе на задний план: applicationDidEnterBackground

[self.window addSubview:self.someShieldView]; 

Я также попытался,

[self topViewController].view.hidden = YES; 

Я делаю это в AppDelegate-х

- (void)applicationDidEnterBackground:(UIApplication *)application 

, как рекомендовано в iPhoneAppProgrammingGuide.pdf Page 51

..... Когда t он applicationDidEnterBackground: возвращает метод, система делает снимок пользовательского интерфейса вашего приложения и использует итоговое изображение для анимации перехода. Если какой-либо вид в интерфейсе содержит конфиденциальную информацию, вы должны скрыть или изменить эти мнения до проведения applicationDidEnterBackground: метод возвращает

Но я до сих пор вижу свою точку зрения и свои данные за несколько секунд. Как я могу убедиться, что мой взгляд скрыт за «щитом»?

Я следил за этим сообщением, но не мог достичь того, чего хотел.

Delay applicationDidEnterBackground screen capture

Что я могу делать неправильно?

Примечание: одна альтернатива не поддерживает многозадачность, но я хочу поддерживать многозадачность.

+0

Что ты имеешь в виду: «Я до сих пор вижу свою точку зрения и свои данные за несколько секунд» – sha

+0

я имею в виду, Защищенные данные в моей точке зрения контроллера, что я хочу скрыть, его видно в течение нескольких секунд, когда я возвращаюсь с фона. – anuj

ответ

1

После чесать голова над конкретной проблемой в течение некоторого времени, я думаю, что я, возможно, нашел, что происходит в.

Вопрос, который вы столкнулись происходит только в симуляторе. На физическом устройстве (я тестировал iphone5), если вы скрываете свой вид в applicationDidEnterBackground, временный захват экрана не отображает скрытый вид.

Это весь мой код:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    [self.window makeKeyAndVisible]; 
    self.window.backgroundColor = [UIColor redColor]; // this is your secure content 
    return YES; 
} 

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    self.window.hidden = YES; // this is where you will hide/mask your content 
} 
Смежные вопросы