2012-09-13 20 views
8

से भिन्न होता है मेरा ऐप आईओएस 6 जीएम सिम्युलेटर में ऑटोरोटेट नहीं करेगा लेकिन यह डिवाइस पर आईओएस के उसी संस्करण के साथ करता है। क्या यह एक सिम्युलेटर बग हो सकता है? ऐप बहिष्कृत ऑटोरोटेशन विधियों का उपयोग कर रहा है, लेकिन वे डिवाइस पर ठीक काम कर रहे हैं जो मुझे आश्चर्यचकित करता है अगर सिम्युलेटर एपीआई अलग हैं? ,सिम्युलेटर में आईओएस 6 ऑटोरोटेशन वास्तविक आईओएस 6 डिवाइस

- (NSUInteger)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskAllButUpsideDown; 
} 
- (BOOL) shouldAutorotate { 
    return YES; 
} 
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { 
    return UIInterfaceOrientationPortrait; 
} 

यह काम करने के लिए मैं:

// Tell the system what we support 
- (NSUInteger)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskAllButUpsideDown; 
} 

// Tell the system It should autorotate 
- (BOOL) shouldAutorotate { 
    return YES; 
} 

// Tell the system which initial orientation we want to have 
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { 
    return UIInterfaceOrientationPortrait; 
} 
+0

क्या आप आईओएस 6 जीएम एसडीके के साथ संकलित ऐप चला रहे हैं? – rckoenes

+0

यह एक अच्छा सवाल है, मुझे कैसे पता चलेगा? मैं बस एक्सकोड के भीतर से डिवाइस पर ऐप चला रहा हूं, आईओएस 6 चलाने वाले डिवाइस पर, एक्सकोड 4.5 का उपयोग कर जिसमें आईओएस 6 एसडीके और आईओएस 6 सिम्युलेटर – johnbakers

+0

है, यह आईओएस 6 एसडीके है। मैं एक ही समस्या में भाग गया था, मेरे बेस व्यू कंट्रोलर में एक छोटी सी रीराइट कर रहा था, मैं नए रोटेशन विधियों को जोड़ने में सक्षम था, इस प्रकार सिम्युलेटर में इसे ठीक कर रहा था। हमने नए रोटेशन कोड को जोड़ने से पहले परीक्षण किया है और ऐसा लगता है कि यह डिवाइस पर ठीक है। – rckoenes

उत्तर

11

यह वही है मैं अपने ऐप पुन: चालू करने के लिए जोड़ा है

self.window.rootViewController = viewController; 

मैं सेंट: भी AppDelegate वर्ग की didFinishLaunchingWithOptions समारोह के अंदर निम्नलिखित जोड़ा इस के अलावा के बाद निम्न त्रुटि हो रही opped: अनुप्रयोग विन्डोज़ आवेदन लांच के अंत में एक रूट दृश्य नियंत्रक की अपेक्षा की जाती

+0

आप विशेष रूप से उन्हें कहां जोड़ते थे? अगर मैं उन्हें अपने ऐप प्रतिनिधि या मेरे व्यू कंट्रोलर में जोड़ता हूं तो यह अभी भी काम नहीं करता है। – Jackson

+1

इसे 'UIViewController' में जाना है, तो आपको इसे थोड़ा सा ट्विक करना पड़ सकता है। – rckoenes

+1

यह भी सुनिश्चित करें कि आपकी Info.plist आपको आवश्यक सभी रोटेशन का समर्थन करती है। – johnbakers

0

जोड़ना निम्नलिखित यह सिम्युलेटर पर काम करने के लिए पर्याप्त नहीं था:

15

यह अभी भी है, तो बहिष्कृत घुमाने के तरीकों के साथ काम करना चाहिए लेकिन आप जोड़ने की जरूरत अपने didFinishLaunchingWithOptions: विधि के लिए निम्न:

self.window.rootViewController = yourRootViewController; 

यह मुख्य window बताता है कि दृश्य नियंत्रक के लिए घुमाने सूचना भेजने के लिए। आईओएस 6.0 एसडीके के साथ यह नया है।

+0

आईओएस 5 में नया नहीं था? मेरा मतलब है, उन्होंने आईओएस 5 में बदल दिया, या मैं गलत हूँ? –

+0

यह आईओएस 5 में नया था, लेकिन आप अव्यवस्था चेतावनी को सुरक्षित रूप से अनदेखा कर सकते थे। आईओएस 6 में आप उन्हें अनदेखा नहीं कर सकते क्योंकि यह वर्णित विरासत रोटेशन समस्या की ओर जाता है। पहले एक ही मुद्दा था ... – Roger

0
- (BOOL)shouldAutorotate { 
    return NO; 
} 

और केवल चित्र के लिए एप्लिकेशन plist फ़ाइल में जड़ दृश्य नियंत्रक के लिए समर्थित रोटेशन निर्धारित किया है।