2012-10-02 36 views
5

में पोर्ट्रेट में एक मोडल व्यू में UIWebview दिखाया जा रहा है, मैंने अधिकांश प्रश्नों के माध्यम से ब्राउज़ किया और लगभग सब कुछ करने की कोशिश की। लेकिन बुरा हिस्सा यह है कि मुद्दा अभी भी वहां है।लैंडस्केप मोड

मेरे पास UIVIew है जो हमेशा लैंडस्केप मोड में लॉन्च होता है और मैं एक पूर्ण स्क्रीन मोडल व्यू के रूप में एक दूसरा दृश्य (detailView) प्रस्तुत कर रहा हूं।

detailview के ऊपर UIwebview है।

जब मैं detailView को एक मॉडल दृश्य के रूप में प्रस्तुत करता हूं, तो वेबदृश्य पोर्ट्रेट मोड में दिखाया जा रहा है।

मैं लौट रहा हूँ "YES" shouldAutoRotateToInterfaceOrientation में और भी autoresize, autoresizingMask और scalePageToFit गुण निर्धारित किया है।

जब मैं डिवाइस को घुमाता हूं, और जब detailView सामने आता है, तो वेबदृश्य ठीक से परिदृश्य की व्यवस्था करता है।

समस्या केवल तभी होती है जब मैं पहली बार modalView प्रस्तुत करता हूं।

डिवाइस को घूर्णन करना उचित रूप से लेआउट समायोजित कर रहा है।

+0

के आधार पर शैली अद्यतन करने के लिए मेरी जावास्क्रिप्ट को एक अधिसूचना पोस्टिंग कर रहा हूँ और मैं भी मोडल दृश्य की viewWillAppear में स्थिति पट्टी स्थापित करने की कोशिश की है ।, यानी, [[यूआईएप्लिकेशंस साझा अनुप्रयोग] setStatusBarOrientation: self.interfaceOrientation] ... यहां तक ​​कि यह –

+0

काम नहीं करता है: इसे आजमाएं - क्लास UIViewController के एक कस्टम व्यू नियंत्रक (कहें - FirstViewController) को क्रेट करें। इस वीसी में, दोनों ओरिएंटेशन (पोर्ट और लैंड) का समर्थन करें।फिर SecondViewController बनाएं जो FirstViewController का उप-वर्ग होगा, जाहिर है कि आप यूआईवीव को लैंडस्केप मोड के साथ बनाएंगे और जैसा आपने किया था उतना ही करें। – Nayan

+1

टर्मिनल 'लैंडस्केप' या 'पोर्ट्रेट' मोड 'UIViewController' से संबंधित हैं लेकिन 'UIView' से नहीं हैं। तो क्या आप स्पष्ट कर सकते हैं कि 'UIWebView' के पोर्ट्रेट मोड के तहत आपका क्या मतलब है। 'Detailview' के शीर्ष पर 'UIWebView' दिखाने के लिए आप किस विधि का उपयोग करते हैं? – onegray

उत्तर

0

ठीक है। सबसे पहले, मैंने जो प्रश्न पोस्ट किया था वह स्पष्ट नहीं था। मेरा सवाल यह था कि, जब मैं एक वेबव्यू लोड करता हूं, पोर्ट्रेट में, यह लैंडस्केप मोड (सीएसएस) में वेबव्यू तत्वों को लोड कर रहा था, और लैंडस्केप ओरिएंटेशन में पोर्ट्रेट मोड (सीएसएस) के रूप में लोड हो रहा था।

यह पता चला कि मैं सही सीएसएस शैली लागू नहीं कर रहा था।

ठीक मैंने किया था: viewDidLoad और willAnimateRotation विधि में, मैं उन्मुखीकरण :)

+0

क्या आप इसके लिए कोड दिखा सकते हैं - मुझे एक ही समस्या है लेकिन जब जावास्क्रिप्ट – iOSProgrammingIsFun

+0

@iOSProgrammingIsFun की बात आती है तो कोई सुराग नहीं है क्या आप कृपया अपनी समस्या पर विस्तार कर सकते हैं? मैंने कुछ समय पहले यह काम किया था। मुझे अपने कोड की तलाश करनी है। –

+0

ठीक है, मेरे पास व्यू कंट्रोलर ए है, जो सामान्य रूप से दृश्य नियंत्रक बी प्रस्तुत करता है, और पूर्ण स्क्रीन शैली में। वीसी बी के अंदर एक पूर्ण स्क्रीन uiwebview है। उस वेबव्यू का उपयोग एक विशिष्ट वेबसाइट दिखाने के लिए किया जाता है - विकिपीडिया कहें। यदि ऐप पोर्ट्रेट में चलाया जाता है, तो वेब पेज को पोर्ट्रेट के रूप में स्वरूपित किया जाता है और वेब व्यू को फिट करने के लिए स्केल किया जाता है - भले ही स्केलेस्टोफिट इंटरफ़ेस बिल्डर में अनचाहे हो। मैं मोबाइल सफारी में एक ही पृष्ठ खोला था, पृष्ठ की चौड़ाई स्क्रीन की चौड़ाई से अधिक है और अधिक पठनीय है, इसे ज़ूम भी किया जा सकता है, जहां वीसी बी में वेबव्यू नहीं हो सकता है। अगर वीसी बी घुमाया गया है तो पेज – iOSProgrammingIsFun

1

आप IOS 6 पर आपकी ऐप्लिकेशन चला रहे हैं आप लैंडस्केप ओरिएंटेशन का समर्थन करने के मोडल दृश्य नियंत्रक में निम्न कोड की आवश्यकता होगी: इसके अलावा

- (NSUInteger)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskLandscape; 
} 

- (BOOL) shouldAutorotate { 
    return YES; 
} 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { 
    return UIInterfaceOrientationLandscapeLeft; 
} 

, के रूप में विरोध किया आप वास्तविक डिवाइस पर परीक्षण कर रहे हैं सुनिश्चित करें सिम्युलेटर के लिए क्योंकि ऑटो-रोटेशन सिम्युलेटर पर अलग-अलग व्यवहार करता है।

3

जहां तक ​​मुझे पता है कि आईफोन पर मॉडेल व्यू लैंडस्केप व्यू का समर्थन नहीं करते हैं। यह मामला आईफोन 5 के लिए अलग हो सकता है।

लेकिन ऐसा लगता है कि आप मॉडेल व्यू को वेब व्यू को परिदृश्य में सेट नहीं कर रहे हैं, मैं इसे संभालने के लिए एक अलग दृष्टिकोण सुझाता हूं।

उदाहरण के लिए यदि आप एक ModalView की तरह में DetailView चेतन सकता है तो यह सही ओरिएंटेशन

0

कि चाल करना होगा में शुरू होता है:

CGAffineTransform transform = CGAffineTransformIdentity; 
webView.transform = CGAffineTransformRotate(transform,-M_PI/2);