5

को मैं एक के लिए, एक ViewController परिदृश्य का समर्थन करता है कि (लैंडस्केप मोड में है, जबकि) से जाना कि स्पष्ट रूप से (और नहीं करना चाहिए) नहीं है समर्थन परिदृश्य कोशिश कर रहा हूँ। इस प्रकार मैं यह कर रहा हूँ:समस्या pushViewController लैंडस्केप से पोर्ट्रेट

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { 
    return (toInterfaceOrientation == UIInterfaceOrientationPortrait); 
} 

आदर्श रूप में मैं नए ViewController कि मैं ढेर पर जोर दे रहा हूँ चाहता हूँ चित्र, नहीं परिदृश्य में शुरू में शुरू करने के लिए। इस पद्धति के साथ भी आश्चर्यजनक रूप से लागू, यह लैंडस्केप में शुरू होता है।

मेरी केवल अनुमान है कि एप्पल (हमें वापस पिछले एक नियंत्रक चित्र में है कि करने के लिए, परिदृश्य से जाने के लिए अनुमति के बावजूद) एक उपयोगकर्ता चित्र के परिदृश्य से संक्रमण नहीं चाहता है है।

कोई अंतर्दृष्टि और/या सहायता की बहुत सराहना की जाएगी।

उत्तर

10

मुझे पोर्ट्रेट को मजबूर करने का एक तरीका मिला। यह थोड़ा हैक है, लेकिन यह यहाँ है। में - (शून्य) ViewController की है कि आप के लिए चित्र के लिए मजबूर करने के लिए निम्न चाहते viewDidLoad:

UIViewController *viewController = [[UIViewController alloc] init]; 
[self presentModalViewController:viewController animated:NO]; 
[self dismissModalViewControllerAnimated:NO]; 
[viewController release]; 

यह मूलतः चित्र बलों, एक नियंत्रक (जो केवल डिफ़ॉल्ट रूप से चित्र का समर्थन करता है) पेश करके।

+0

यह मेरे लिए पोर्ट्रू-केवल लैंडस्केप से चल रहा है-केवल pushViewController के माध्यम से दृश्य। आपको अनियंत्रित निजी एपीआई [[UIDevice currentDevice] setOrientation को कॉल करने के लिए सहेजता है: UIDeviceOrientationLandscapeRight] धन्यवाद! – MyCSharpCorner

+0

अच्छा हैक ... असली आसान आया ... :) – Roshit

4

आपको अपना नया व्यू कंट्रोलर सामान्य रूप से पेश करने की आवश्यकता होगी। यदि आपका व्यू कंट्रोलर नेविगेशन नियंत्रक के भीतर मौजूद है तो एनएवी स्टैक में सभी व्यू कंट्रोलर का अभिविन्यास स्टैक में रूट व्यू कंट्रोलर द्वारा निहित है। एनएवी स्टैक में जो भी आपका रूट व्यू कंट्रोलर चाहिए, उसे चाहिए .AutoRotateToInterfaceOrientation को इसके नीचे सभी व्यू कंट्रोलर के लिए उपयोग किया जाता है।

+0

आह मैं देखता हूं, यही वह मामला है जो मैंने माना था। स्पष्टीकरण के लिए धन्यवाद! – Sahil

1

उपरोक्त साहिल का उत्तर आईओएस 6.0 के बाद से हटा दिया गया है। हालांकि, निम्नलिखित एक ही चाल करने लगते हैं:

UIViewController *viewController = [[UIViewController alloc] init]; 
[self presentViewController:viewController animated:NO completion:nil]; 
[self dismissViewControllerAnimated:NO completion:nil]; 
[viewController release];