2010-07-28 28 views
11

Tôi muốn xóa chế độ xem trước khi ứng dụng bị tắt, để thay đổi hình ảnh khởi chạy để lần tiếp theo ứng dụng được nhập vào sẽ không hiển thị một số dữ liệu không an toàn.Ảnh chụp màn hình Circumvent cho iOS 4

iOS 4 cung cấp applicationDidEnterBackgroundapplicationWillResignActive ... tuy nhiên, không phải trong số này dường như có thể ngăn ảnh chụp màn hình được chụp trước khi tôi có cơ hội xóa chế độ xem.

+2

Bạn có chắc chắn? '-applicationDidEnterBackground:' được gọi trước khi chụp ảnh màn hình. – kennytm

+0

Bạn chính xác. Lỗi của tôi. – akaru

Trả lời

8

-applicationDidEnterBackground không được gọi trước ảnh chụp màn hình. Hóa ra tôi chỉ đơn giản là che giấu tầm nhìn của tôi một cách không đúng.

Cách đơn giản để xóa chế độ xem là đặt thuộc tính ẩn trên UIView.

+1

Khi cố gắng chụp ảnh màn hình bằng cách nhấn nút home và nút nguồn (ở phía trên cùng bên phải của thiết bị), Không nhận được bất kỳ phương thức ủy nhiệm ứng dụng nào trong ứng dụng iOS (Làm việc với iOS 6). Hãy giúp tôi. – kushalrshah

1

Chỉ cần thêm đoạn mã cho giải pháp nhanh cho vấn đề này bằng cách sử dụng hình nền đầy đủ được khai báo trên khởi tạo và ẩn nó.

Bạn có thể thực hiện ẩn giấu nhiều hơn về nội dung cụ thể của từng chế độ xem bằng cách đăng ký thông báo và trong chế độ xem ẩn các chế độ xem (nhãn) cụ thể bạn muốn ẩn.

Một giải pháp khác là kiểm tra xem bộ điều khiển xem nào đang hiển thị và chuyển đổi giữa các ảnh chụp màn hình khác nhau của chế độ xem của bộ điều khiển chế độ xem này mà không có dữ liệu được hiển thị.

Cách đơn giản nhất:

- (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; 
} 
Các vấn đề liên quan