2012-08-29 15 views
5

मैं आईओएस 6.0 बीटा का उपयोग कर रहा हूं और मेरे घूर्णन अब और काम नहीं करते हैं।मैं UINavigationControllers समर्थित ऑरियंसेशन कहां सेट कर सकता हूं?

मैं UINavigationControllers समर्थित ऑरियंसेशन कहां सेट कर सकता हूं?

इस http://news.yahoo.com/apple-ios-6-beta-3-changes-182849903.html के अनुसार एक यूनाविगेशन नियंत्रक यह निर्धारित करने के लिए अपने बच्चों से परामर्श नहीं करता है कि उन्हें ऑटोरोटेट करना चाहिए या नहीं।

मैं उपयोग नहीं कर रहा हूंऑटोरोटेट टॉइंटरफेसऑरिएंटेशन: अब इसे बहिष्कृत किया गया है। इसके बजाय मैं समर्थित इंटरफेसऑरेंटेशंस का उपयोग कर रहा हूं: और चाहिएऑटो रूट: और जब तक मैं एक व्यू कंट्रोलर को एक नेविगेशन नियंत्रक (एक बच्चे के रूप में) में रखता हूं तब तक वे ठीक काम कर रहे हैं। तब से ViewController में निर्दिष्ट ओरिएंटेशन पर अब और काम नहीं करते हैं। यह झुकाव नेविगेशन नियंत्रक (UIInterfaceOrientationMaskAllButUpsideDown) द्वारा निर्धारित उपयोग कर रहा है लगता है

कैसे इतना है कि मेरी ViewControllers पोर्ट्रेट-अभिविन्यास करने के लिए बंद कर दिया जाता है मैं navigationController के लिए InterfaceOrientations सेट कर सकते हैं?

क्या मुझे UINavigationController को उपclass करना है और वहां इंटरफ़ेसऑरिएंटेशन सेट करना है? आईओएस 6.0 में अभी भी UINavigationController subclass करने के लिए यह बुरा अभ्यास नहीं है?

आपके लिए धन्यवाद ढेर में मदद करें!

चीयर्स!

उत्तर

4

उपवर्ग UINavigationController

//OnlyPortraitNavigationController.h

@interface OnlyPortraitNavigationController : UINavigationController 

//OnlyPortraitNavigationController.m

@implementation OnlyPortraitNavigationController 

- (BOOL)shouldAutorotate { 
    return NO; 
} 

-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 
{ 
    return UIInterfaceOrientationPortrait; //for locked only Portrait 
} 

वर्तमान नया उपवर्ग navigationController अपने चित्र ViewController

SomeViewController *onlyPortraitVC = [[SomeViewController alloc]init]; 

OnlyPortraitNavigationController *portraitNav = [[OnlyPortraitNavigationController alloc]initWithRootViewController:onlyPortraitViewController]; 

[self presentViewController:portraitNav animated:YES completion:NULL]; 
साथ

यह मेरे ऐप पर काम करता है उम्मीद है कि यह आपकी मदद कर सकता है।

+0

मेरे लिए बहुत अच्छा काम करता है और साथ ही जोड़ सकते हैं परामर्श करने के लिए चाहते हैं, धन्यवाद। –

9

आप इसे यह बच्चों के फिर से आप एक वर्ग UINavigationController

को
@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 
+5

आमतौर पर कक्षाओं के तरीकों को ओवरराइड करने के लिए श्रेणियों का उपयोग करना एक बुरा विचार है, विशेष रूप से ऑपरेटिंग सिस्टम में बनाया गया एक। इसके बजाय एक उपclass बनाएँ। –

+2

मैं इसके साथ सहमत होगा ... अंत में यह आपकी स्थिति पर निर्भर करता है। यह निश्चित रूप से एक बड़ी परियोजना के लिए एक त्वरित संगतता तय करने का इरादा है। – Anthony

+1

यह एक बुरा विचार क्यों है? यह एकमात्र ऐसा है जिसने अभी तक मेरे लिए काम किया है और इसे स्थापित करना आसान था। मैंने इसे अपने यूआईटीएबीबार नियंत्रक और व्हायोला में रखा, मैं अपने सभी विचारों के घूर्णन को नियंत्रित कर सकता हूं। –

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