2013-01-19 25 views
5

के तहत नियंत्रक को देखने के लिए दृश्य रोटेशन लागू करें पारदर्शी पृष्ठभूमि के साथ दृश्य प्रदर्शित करने के लिए मैं this question पर समाधान का पालन कर रहा हूं। एक बार जब मैं मोडल व्यू कंट्रोलर प्रदर्शित कर रहा हूं, तो अंतर्निहित दृश्य अब घूमता नहीं है।आईओएस: मोडल व्यू

उदाहरण के लिए यदि A मेरा व्यू कंट्रोलर है, तो B मेरा मोडल व्यू है। इस प्रकार मुद्दा है। मेरे पास वर्तमान में पोर्ट्रेट में मेरा डिवाइस है और A प्रदर्शित है। मैं फिर B मॉड्यूल प्रस्तुत करता हूं। मैं फिर अपने डिवाइस को घुमाता हूं और बी इसके साथ घूमता है, हालांकि A जैसा रहता है।

कृपया कोई इस रोटेशन को संभालने के बारे में सलाह दे सकता है ताकि अंतर्निहित दृश्य (A) भी घुमाया जा सके?

+0

जो iOS संस्करण पर दस्तावेज़? – foundry

+0

मैं आईओएस 6.0 –

+0

का उपयोग कर रहा हूं [मॉड्यूल व्यू कंट्रोलर घुमाने पर आईओएस रोटेट व्यू कंट्रोलर का संभावित डुप्लिकेट] (http://stackoverflow.com/questions/13987528/ios-rotate-view-controller-when-modal-view-controller -रोटेट्स) – michael23

उत्तर

6

मॉडल व्यू कंट्रोलर वर्तमान वर्कफ़्लो को बाधित करने और दृश्यों का एक नया सेट प्रदर्शित करने के लिए उपयोग किया जाता है। तो जब आप इस मामले आप बी प्रस्तुत कर रहे हैं में रीति से, यहाँ प्रस्तुत करते हैं, मौजूदा सक्रिय ViewController बी और नहीं ए

एक ViewController मॉडल-ViewController (MVC) डिजाइन पैटर्न में पारंपरिक नियंत्रक वस्तुओं है। वे उपयोगकर्ता इंटरफेस, इशारा पहचान, घटना प्रबंधन (उदाहरण के लिए बटनों) और वर्तमान में उनके विचारों के संरेखण का भी ख्याल रखते हैं।

जब आप बी प्रस्तुत करते हैं, तो वर्तमान व्यू कंट्रोलर ए से बी में बदल जाता है और इसलिए जब आप घुमाने की कोशिश करते हैं (यदि अभिविन्यास समर्थन प्रदान किया जाता है) बी का दृश्य इसे व्यू कंट्रोलर सक्रिय के रूप में प्रभावित करता है और यह रोटेशन का जवाब देता है। आम तौर पर हम इन पर ध्यान नहीं देते क्योंकि दृश्य अपारदर्शी है। यहां आपके मामले में दृश्य पारदर्शी है और हमने देखा है कि ए ने रोटेशन का जवाब नहीं दिया है।

मैं iOS6 में ऊपर के उदाहरण की कोशिश की

ViewController2 *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"VC2"]; 
vc.view.backgroundColor = [UIColor clearColor]; 
self.modalPresentationStyle = UIModalPresentationCurrentContext; 
[self presentViewController:vc animated:YES completion:nil]; 

यहाँ एक पोर्ट्रेट मोड में बने रहे (एक आप का उल्लेख से)

जब मैं इस एक subview के रूप दूसरा ViewController के दृष्टिकोण को जोड़ने किया था, एक बदला परिदृश्य

ViewController2 *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"VC2"]; 
vc.view.backgroundColor = [UIColor clearColor]; 
self.view addSubview:vc.view]; 

को यह क्योंकि दूसरे परीक्षण में सक्रिय ViewController एक था और नहीं बी के रूप में बी का दृष्टिकोण एक subview ए को जोड़ा गया सेब के माध्यम से जाओ था happend

+0

समान समस्या होने के कारण मोडल व्यू कंट्रोलर के तहत मेरा दृश्य ios7 में घूमता नहीं है .. क्या करना है? Ios8 में UIModalPresentationOverCurrentContext का उपयोग मोडल के नीचे दृश्य घुमाता है – iWatch