2010-07-28 15 views
11

के लिए सर्क्यूमेंट स्क्रीनशॉट लॉन्च छवि को बदलने के लिए, एप्लिकेशन को बंद करने से पहले एक दृश्य को साफ़ करना चाहते हैं ताकि अगली बार ऐप दर्ज किया जा सके, यह कुछ असुरक्षित डेटा प्रदर्शित नहीं करेगा।आईओएस 4

आईओएस 4 applicationDidEnterBackground और applicationWillResignActive प्रदान करता है ... हालांकि, इनमें से कोई भी दृश्य को साफ़ करने का मौका मिलने से पहले स्क्रीनशॉट को लेने से रोकने में सक्षम नहीं लगता है।

+2

आपको यकीन है? '-प्लिकेशंसडिड एंटरबैकग्राउंड: स्क्रीनशॉट लेने से पहले कहा जाता है। – kennytm

+0

आप सही हैं। मेरी गलती। – akaru

उत्तर

8

-applicationDidEnterBackground स्क्रीनशॉट से पहले कॉल किया जाता है। बाहर निकलता है मैं बस अपने विचार को अनुचित तरीके से छुपा रहा था।

दृश्य को साफ़ करने का एक आसान तरीका छिपी हुई संपत्ति को मेरे UIView पर सेट करना था।

+1

होम बटन और पावर बटन (जो डिवाइस के ऊपरी दाएं किनारे पर) को दबाकर स्क्रीनशॉट को कैप्चर करने का प्रयास करते समय, आईओएस (आईओएस 6 के साथ काम करना) में कोई ऐप-प्रतिनिधि तरीकों को नहीं मिला। कृपया मदद करे। – kushalrshah

1

प्रारंभिक पर घोषित एक पूर्ण पृष्ठभूमि छवि का उपयोग करके और इस पर छिपाने के लिए इस समस्या के तेज़ समाधान के लिए कोड का एक स्निपेट जोड़ने के लिए।

आप अधिसूचना में पंजीकरण करके प्रत्येक दृश्य की विशेष सामग्री का एक अधिक परिष्कृत छुपा कर सकते हैं, और विचारों में उन विशेष विचारों (लेबल) को छुपाएं जिन्हें आप छिपाना चाहते हैं।

एक और समाधान यह जांचना है कि कौन सा व्यू कंट्रोलर दिखा रहा है और दिखाए गए डेटा के बिना इस व्यू कंट्रोलर के दृश्य के 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; 
} 
संबंधित मुद्दे