2011-12-29 15 views
9

कुछ मौकों पर, हर बार, जब मेरा ऐप presentModalViewController:animated:modalTransitionStyleUIModalTransitionStyleFlipHorizontal पर सेट करता है तो आईफोन होम स्क्रीन एनीमेशन के पीछे दिखाई देती है, तो हर बार, जब कोई ऐप एक मोडल व्यू कंट्रोलर प्रस्तुत करता है। अधिकांश समय पृष्ठभूमि पृष्ठभूमि की अपेक्षा की जाती है। असामान्य कुछ भी नहीं है जहां मैंने window या rootViewController (UITabBarController) स्थापित किया है। मैंने अपना ऐप यूआई ब्लैक आउट किया लेकिन आप आईफोन 4 के साथ किए गए स्क्रीन शॉट में समस्या देख सकते हैं जबकि संक्रमण प्रगति पर है।एक मॉडल फ्लिप संक्रमण के पीछे आईफोन होम स्क्रीन दिखाई देगी?

इसका कारण क्या होगा? मुझे नहीं पता कि यह कैसे करना है, भले ही मैं यह व्यवहार चाहता हूं।

संपादित करें: यह स्क्रीन शॉट मुझे परीक्षक द्वारा भेजा गया था, मैंने इसे खुद को दोबारा नहीं बदला है। उन्होंने मुझे बताया कि यह एक विशेष ऐप सत्र के दौरान हुआ था और एक बार ऐसा हुआ जब यह सभी संक्रमणों के लिए हुआ। जब उन्होंने ऐप को छोड़ दिया/फिर से लॉन्च किया तो यह फिर से नहीं हुआ और उन्होंने इसे तब से नहीं देखा है। मैं सोच रहा हूं कि यह कुछ है जिसके बारे में मुझे चिंतित होना चाहिए (यानी मैं इसे कोड में रोक सकता हूं)।

संपादित करें 2: यह ऐप आईबी का उपयोग नहीं करता है। कोड में सभी नियंत्रक/विचार बनाए जाते हैं।

enter image description here

+0

यह एक बग की तरह एक सा लगता है अजीब है। आदर्श नहीं है अगर आप इसे पुन: पेश नहीं कर सकते हैं। क्या आप किसी भी बिंदु पर 'UIWindow' का पृष्ठभूमि रंग सेट कर सकते हैं, शायद यह स्पष्ट रूप से सेटिंग कर सकता है कि संभावित रूप से इससे बच सकता है लेकिन यह शुद्ध अटकलें है। –

+0

मैं विंडो के 'पृष्ठभूमि रंग' (या किसी भी अन्य प्रदर्शन गुण) सेट नहीं है।मैंने विंडो पृष्ठभूमि रंग को स्पष्ट रूप से 'clearColor'' (और 'tabBarController.view' आदि से गड़बड़ कर) को सेट करके इसे दोबारा करने की कोशिश की। अगर मैं ऐसा करने के लिए मजबूर कर सकता हूं जो मुझे कुछ अंतर्दृष्टि दे सकता है, तो अभी तक ऐसा करने का कोई तरीका नहीं मिला है। – XJones

+0

यूप जो मेरी सोच थी। यद्यपि नए ऐप्पल टेम्पलेट्स स्पष्ट रूप से विंडो 'self.window.backgroundColor = [UIColor whitecolor] सेट करते हैं;' मैं गलत हो सकता था लेकिन संभावना है कि यह xibs pre xcode 4.x –

उत्तर

3

मुझे पहले भी यही समस्या है। अपने पुशिंग को देखने पर [viewController.view setBackgroundColor:[UIColor blackColor]]; का उपयोग करने का प्रयास करें। वैसे भी मेरे लिए काम किया!

+0

धन्यवाद, मैं अब ऐसा कर रहा हूं लेकिन आपने टिप्पणियों में यह नहीं देखा होगा। अभी तक कोई और repro है। यह जानना अच्छा होगा कि इसे यादृच्छिक रूप से अन्य यादृच्छिक (यानी छोटी गाड़ी) घटना के अलावा कैसे किया जाए। – XJones

+0

हाँ मुझे लगता है कि यह शायद एक यादृच्छिक चीज है जो घटित होता है। मैं केवल आईपैड पर लगातार कुछ बार ऐसा करने में कामयाब रहा, खुश प्रोग्रामिंग! – Chad

+0

मुझे यकीन नहीं है कि यह वास्तव में संबंधित है लेकिन मैंने यह परिवर्तन किया है और जहां तक ​​मुझे पता है कि यह कभी भी पुनरावृत्ति नहीं हुआ है। मैंने अभी भी इसे व्यक्तिगत रूप से कभी नहीं देखा है। मैं इसे बंद करने के लिए इसे स्वीकार करूंगा। – XJones

0

मुझे यकीन है कि नहीं कर रहा हूँ, लेकिन मैं यह एक बग या मुख्य 'UIApplication.h' कोड, या iOS के साथ एक समस्या Xcode आप के संस्करण के साथ एक मुद्दे पर संशोधन के कारण हो सकता लगता है की है।

सेब

0

मैंने यह समस्या फेसबुक आईफोन ऐप के साथ भी देखी। शायद यह ऐप्पल की बग है।

2

ऐसा तब होता है जब आईओएस ऐप को मेमोरी चेतावनी भेजता है और ऐप का ढांचा स्वचालित रूप से सभी दृश्य घटकों को डंप करता है जो दिखाई नहीं दे रहे हैं, दृश्य नियंत्रक से संबंधित डेटा संरचनाओं को छोड़कर, और जब इसे देखने का संदर्भ दिया जाता है दृश्य को फिर से निब से लोड करेगा (आपके मामले में लोड व्यू मुझे अनुमान लगाया जाता है) आपको यह सुनिश्चित करना चाहिए कि आपका व्यू निर्माण कोड पुनर्निर्माण योग्य है और दृश्य दृश्य से संबंधित सभी ऑब्जेक्ट्स को निरस्त कर देता है, जो आपके व्यू कंट्रोलर के DidUnload विधि को देखता है।

आप सिम्युलेटर द्वारा अपना ऐप चलाकर इसे भी कर सकते हैं और जब आप उस मोडल व्यू में हैं, तो अपनी कंप्यूटर स्क्रीन के शीर्ष पर "डिवाइस" मेनू से "मेमोरी चेतावनी" सिमुलेशन ट्रिगर करें।

+0

यह इस मुद्दे का कारण नहीं है। आईओएस (आईओएस 6 से पहले) मेमोरी चेतावनियों के जवाब में विचारों को उतारने के संबंध में आप सही हैं लेकिन यह मुद्दा यहां नहीं है। – XJones

0

इस समस्या को ठीक करने के लिए निर्देश:

  1. प्रभावित XIB पर जाएँ और देखें का चयन करें नियंत्रक प्रभावित।
  2. दाईं ओर स्थित विशेषता पैनल पर जाएं। देखें >> पृष्ठभूमि रंग पर जाएं।
  3. अब वह रंग सेट करें जिसे आप संक्रमण को वापस करना चाहते हैं।

आशा इस मदद करता है :)