2010-07-28 62 views
11

我想清除應用程序之前的圖被切換遠離,以改變發射圖像,使得下一次被輸入的應用程式它不會顯示某些不安全的數據。智取截圖爲iOS 4

iOS 4提供了applicationDidEnterBackgroundapplicationWillResignActive ...但是,在我有機會清除視圖之前,這些視圖都不能阻止截圖。

+2

你確定嗎? '-applicationDidEnterBackground:'在拍攝截圖之前被調用。 – kennytm 2010-07-28 10:15:23

+0

你是對的。我的錯。 – akaru 2010-07-29 01:55:31

回答

8

-applicationDidEnterBackground並截圖之前被調用。原來我只是不恰當地隱藏了我的觀點。

一個簡單的方法來清除的觀點是設置在我UIView的隱藏屬性。

+1

當試圖通過同時按下主屏幕按鈕和電源按鈕(這是設備的右上方)捕獲截圖時,未在iOS(使用iOS 6)應用程序中獲取任何應用程序委託方法。請幫忙。 – kushalrshah 2013-07-11 09:34:41

1

我想補充的代碼片段使用的初始化宣佈一個完整的背景圖像,並將它們隱藏一個快速的解決這個問題。

您可以通過註冊的通知做的每個視圖的特定內容的更sofisticated隱藏,並在視圖隱藏特定視圖(標籤)要隱藏。

另一個解決方案是檢查哪個ViewController中被示出,該視圖控制器的不顯示的數據的數據視圖的屏幕截圖differente之間切換。

最簡單的方法:

- (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; 
}