Ответ 1
-applicationDidEnterBackground
вызывается перед скриншотом. Оказывается, я просто скрывал свой взгляд ненадлежащим образом.
Простым способом очистки представления было установить скрытое свойство на моем UIView
.
Я хочу очистить представление до того, как приложение будет отключено, чтобы изменить образ запуска, чтобы при следующем входе в приложение он не отобразил некоторые небезопасные данные.
iOS 4 предоставляет applicationDidEnterBackground
и applicationWillResignActive
... однако ни один из них, похоже, не может предотвратить скриншот, прежде чем у меня появится возможность очистить представление.
-applicationDidEnterBackground
вызывается перед скриншотом. Оказывается, я просто скрывал свой взгляд ненадлежащим образом.
Простым способом очистки представления было установить скрытое свойство на моем UIView
.
Просто добавьте фрагмент кода для быстрого решения этой проблемы, используя полное фоновое изображение, объявленное при инициализации и скрывающее его.
Вы можете сделать более сложное скрытие конкретного содержимого каждого представления, зарегистрировавшись в уведомлении, а в представлениях скрывать определенные виды (метки), которые вы хотите скрыть.
Еще одно решение - проверить, какой диспетчер представлений отображается, и переключать между различными скриншотами представления этого диспетчера представлений без показанных данных.
Самый простой способ:
- (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;
}