2012-06-14 8 views
13

का उपयोग करना चाहिए, मैं आईपैड एप्लिकेशन बना रहा हूं। जब एप्लिकेशन शुरू होता है तो मैं इसे लैंडस्केप राइट मोड में दिखाता हूं। लेकिन जैसे ही आवेदन शुरू होता है मैं इस संदेश कोदो चरण रोटेशन एनीमेशन बहिष्कृत है। इस एप्लिकेशन को चिकनी सिंगल-स्टेज एनीमेशन

Two-stage rotation animation is deprecated. This application should use the smoother single-stage animation 

मैं अपने सभी वर्गों में इस विधि का इस्तेमाल किया पाने के

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

मैं अपने plist फ़ाइल में सही परिदृश्य के लिए मेरे समर्थित इंटरफ़ेस झुकाव (आईपैड) सेट । इस चेतावनी संदेश को कैसे हल करें?

+0

यदि आप मोडल UITabBarController (अद्यतन। हाँ आप करते हैं) का उपयोग करने का प्रयास करते हैं, तो समाधान [यहां] देखें (http://stackoverflow.com/questions/6271978/presenting-uitabbarcontroller-modally-autorotate-problem)। आधिकारिक स्पष्टीकरण यह क्यों खुश [यहां] (http://stackoverflow.com/questions/6636683/how-to-eliminate-two-stage-rotation-warning)। – Alexander

+0

@Alexander मैं टैबबार को सामान्य रूप से नहीं दिखाता हूं। – southpark

+0

क्या आप एक नेविगेशन नियंत्रक "लॉगिन स्क्रीन" है? सभी नियंत्रक, जो "rootViewController" होना चाहिए, को "मोडल" के रूप में उपयोग नहीं किया जाना चाहिए। – Alexander

उत्तर

15

मुझे अभी एहसास हुआ - this उत्तर पढ़ने के बाद - कि मैं बस टैब बार नियंत्रक गलत का उपयोग कर रहा था: टैब बार केवल रूट नियंत्रक के रूप में उपयोग किया जाना चाहिए, हालांकि मैंने इससे पहले एक नेविगेशन नियंत्रक डाला था।

+0

ऐसा लगता है कि टैब बार नियंत्रक आईओएस 8 में एनवी नियंत्रक में इस्तेमाल किया जा सकता है लेकिन आईओएस 7 में त्रुटि प्राप्त करें। – supNate

1

समस्या यह है कि अपने अनुप्रयोग इन तरीकों, जो iOS 5.0 में पदावनत किया गया में से एक का उपयोग कर रहा है:

didAnimateFirstHalfOfRotationToInterfaceOrientation: 
willAnimateFirstHalfOfRotationToInterfaceOrientation:duration: 
willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration: 

इसके बजाय आप willAnimateRotationToInterfaceOrientation:duration: ओवरराइड करने के लिए आपके विचार नियंत्रकों संशोधित करने की जरूरत है, और नहीं ओवरराइड करने के लिए किसी भी "हाफऑफोटेशन" विधियों का।

+0

मैं इस विधि को कहां रखूं। – southpark

+0

मेरा ऐप वास्तव में क्या करता है-मेरे पास एक टैबबार एप्लिकेशन है। मैं अपने appdelegate में एक tabbarcontroller init और tabbarcontroller की सरणी में अपने सभी वर्गों को जोड़ें। फिर मैं टैबबार के सामने एक लॉगिन स्क्रीन जोड़ता हूं और लॉगिन के बाद मैं टैबबार दिखाता हूं। मेरा आवेदन लैंडस्केप मोड में खुलता है, लेकिन मुझे यह चेतावनी मिलती है। मुझे लगता है कि इस वजह से मुझे अपना कीबोर्ड आकार गलत हो रहा है। लैंडस्केप मोड में कीबोर्ड चौड़ाई और ऊंचाई को प्रदर्शित करने पर यह मुझे चौड़ाई = 352 और ऊंचाई = 1024 आईपैड 3 देता है। मुझे लगता है कि सिस्टम नहीं जानता कि यह वर्तमान में लैंडस्केप मोड में है।धन्यवाद – southpark

+0

क्या आपने उन सभी बहिष्कृत विधियों के लिए अपना सभी स्रोत कोड खोजा था? –

0

टैब बार के लिए अपने सरणी घोषणा ckeck ..possible गलती यू किया:

[tabControlArry addObject:navCOntroller]; 
[tabControlArry addObject:navController1]; 
tabBarController.viewControllers = tabControlArry; 
7

आप भी इस त्रुटि संदेश मिल सकता है: मैं

tabBarController.viewControllers = tabControlArry; 
[tabControlArry addObject:navCOntroller]; 
[tabControlArry addObject:navController1]; 

सही तरीके बताए के बाद सरणी oblects घोषित यदि आपने ऐप को अपने स्टोरीबोर्ड में रूट के रूप में खाली टैब बार नियंत्रक के साथ चलाया है। मैं बस एक ऐप पर शुरू कर रहा था और मेरे UITabBarController में अभी तक कोई कंट्रोल कंट्रोलर नहीं है, लेकिन एक लॉगिन मोडल पेश कर रहा है।

+0

मेरे पास यह बिल्कुल था। धन्यवाद। – Skrew

0

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

संबंधित मुद्दे