2012-10-01 11 views
5

में रोटेशन तंत्र को समझ नहीं पा रहा हूं। मेरे ऐप में कंटूररोटेट टॉइंटरफेसऑरिएंटेशन सबक्सासिंग नियंत्रकों को देख रहा है। और इसमें, मैं प्रत्येक दृश्य के घूर्णन का फैसला करता हूं। यह सही ढंग से काम करता है। लेकिन आईओएस 6 में, हालांकि मैंने एप्पल प्रदान किए गए दस्तावेज पढ़े, मैं इसे समझ नहीं पाया।मैं आईओएस 6

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

पढ़ने के लिए धन्यवाद।

+0

साथ समझ में आता है आप 'में -आवेदन आप आवेदन के लिए समर्थित उन्मुखीकरण परिभाषित करना चाहिए: supportedInterfaceOrientationsForWindow: या' Info.plist' और में 'AppDelegate.m' फ़ाइल के' अपने विचार केवल '-ShouldAutorotate: 'विधि को' BOOL' मान के साथ प्रतिक्रिया देंगे, यदि आपका दृश्य पूर्वनिर्धारित उन्मुखताओं का समर्थन करता है या नहीं। '- चाहिएऑटोरोटेट टूइंटरफेसऑरिएंटेशन:' आईओएस 6 में बहिष्कृत है। – holex

+0

धन्यवाद छेद। मैंने इसे हल कर लिया है। – eon

उत्तर

8

नीचे दिए गए लिंक सही दिशा करने के लिए आप चलाने हो सकता है: http://code.shabz.co/post/32051014482/ios-6-supportedorientations-with-uinavigationcontroller

मूल रूप से, आप UINavigationController उपवर्ग और वह अपने topViewController की -supportedInterfaceOrientations में बदलाव के लिए सुनने की आवश्यकता है। एक नमूना वर्ग है जिसे आप ब्लॉग पोस्ट में डाउनलोड कर सकते हैं और यह भी बताते हैं कि कौन सा कोड जोड़ना है।

+1

धन्यवाद। मैंने इसे हल कर लिया है। – eon

0

आप UINavigationController या UITabbarViewController का उपयोग करते हैं - आवेदन हमेशा वे अपने shouldAutorotate में क्या कहते हैं, supportedInterfaceOrientations तरीकों से करता है।

आप इन विधियों को वर्तमान में प्रदर्शित नियंत्रक को रीडायरेक्ट करने के लिए उनके लिए एक श्रेणी जोड़ सकते हैं। इस तरह:

@implementation UINavigationController (Rotation_IOS6) 
-(BOOL)shouldAutorotate 
{ 
    return [[self.viewControllers lastObject] shouldAutorotate]; 
} 

-(NSUInteger)supportedInterfaceOrientations 
{ 
    return [[self.viewControllers lastObject] supportedInterfaceOrientations]; 
} 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 
{ 
    return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation]; 
} 
@end 

UITabbarViewController लिए इसी तरह के।

+0

इसमें अनपेक्षित दुष्प्रभाव हो सकते हैं। इसके बारे में सोचें यदि आप ऐसा करते हैं तो यह सभी नेविगेशन नियंत्रकों का सिस्टम-व्यापी का व्यवहार है, भले ही वे ओएस द्वारा प्रस्तुत किए जाएं। मुझे इसके कारण दुर्घटना मिली। सबक्लासिंग बेहतर है क्योंकि आप इस बात पर नियंत्रण रखते हैं कि कौन विशेष व्यवहार प्राप्त करता है और कौन नहीं करता है। – n13

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

  • कोई संबंधित समस्या नहीं^_^