2012-09-19 10 views
7

मैंने कुछ मिनट पहले एक्सकोड 4.5 और आईओएस 6 सिम्युलेटर स्थापित किया था। मेरा ऐप सभी आईफोन, चित्र नीचे और शीर्ष होम बटन, परिदृश्य बाएं और दाएं की ओरिएंटेशन का समर्थन करता है।आईओएस 6 सिम्युलेटर में शीर्ष-होम बटन पोर्ट्रेट अभिविन्यास काम नहीं कर रहा है

ठीक है, मैंने इसे .plist पर रखा है क्योंकि इसे आईओएस 6 द्वारा आवश्यक है और पुराने कंधे के लिए भी ... विधि अभी भी हाँ लौट रही है।

लेकिन सिम्युलेटर में, ऐप पोर्ट्रेट टॉप होम बटन पर घूर्णन नहीं है।

क्यों? क्या यह उद्देश्य से है? क्या यह डिवाइस पर सही काम करेगा?

धन्यवाद।

उत्तर

18

ठीक है, मुझे अब जवाब मिल गया।

यह अपने ViewController में

- (BOOL)shouldAutorotate { 

    return YES; 
} 

- (NSUInteger)supportedInterfaceOrientations { 

    return UIInterfaceOrientationMaskAll; 
} 

है करने के लिए पर्याप्त है अगर यह एक UINavigationViewController में धकेल दिया जाता है नहीं है। UINavigationViewController में भी उन विधियों को होना चाहिए। अधिमानतः, आप UINavigationViewController पर एक छोटी श्रेणी के साथ ऐसा करते हैं।

यह मेरा UINavigationController-Rotation.h है:

@interface UINavigationController (Rotation) 
@end 

और मेरे UINavigationController-Rotation.m:

#import "UINavigationController-Rotation.h" 

@implementation UINavigationController (Rotation) 

#pragma From UINavigationController 

- (BOOL)shouldAutorotate { 

    BOOL result = self.topViewController.shouldAutorotate; 

    return result; 
} 

- (NSUInteger)supportedInterfaceOrientations { 

    NSUInteger result = self.topViewController.supportedInterfaceOrientations; 

    return result; 
} 

#pragma - 

@end 

मेरी मदद के लिए धन्यवाद!

+0

उत्तर साझा करने के लिए धन्यवाद .. –

1

मुझे लगता है कि आपका विचार नियंत्रक डिफ़ॉल्ट को वापस करने जा रहे हैं जो सब कुछ उल्टा है। आपको कार्यान्वित करने की आवश्यकता है:

-(NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskAll; 
} 

सभी दृश्य नियंत्रकों के लिए आप सभी उन्मुखताओं का समर्थन करना चाहते हैं।

+0

काम नहीं करता है।प्लस में सभी इंटरफ़ेस ओरिएंटेशन भी सेट किए गए, व्यू कंट्रोलर के वाईएस को वापस कर दिया - (बूल) चाहिएऑटोरोटेट और ... ऐपडिलेगेट्स (एमएसयूइंटर) एप्लिकेशन से मास्कएल: (यूआईएप्लिकेशंस *) एप्लिकेशन समर्थित इंटरफेसऑरिएंटेशंसफॉरविंडो: (UIWindow *) विंडो। – Christoph

+0

आईपैड सिम्युलेटर पर अपेक्षित काम करता है। शायद आईफोन संस्करणों में एक बग? – Christoph

+0

मुझे नए दस्तावेज़ों को और अधिक पढ़ना होगा। फिलहाल मेरी उम्मीद यह है कि इसे .plist फ़ाइल में सेट करना और दृश्य नियंत्रकों में मास्क को वापस करना चाहिए। मुझे एपडिलेगेट से लौटने का जिक्र भी याद है। यह टुकड़ा गायब हो सकता है। –

2

आईफोन पर आईओएस 6 के लिए डिफ़ॉल्ट व्यवहार कोई ऊपर-नीचे अभिविन्यास नहीं है।

from UIViewController Class Reference: The default values for a view controller’s supported interface orientations is set to UIInterfaceOrientationMaskAll for the iPad idiom and UIInterfaceOrientationMaskAllButUpsideDown for the iPhone idiom.

तुम भी सफारी या मानचित्र में इस व्यवहार को देख सकते हैं।

मैंने डीआईएन की तरह UIInterfaceOrientationMaskAll के साथ इसे ओवरराइड करने का प्रयास किया, लेकिन इसका कोई प्रभाव नहीं पड़ा। मैंने अब उल्टा डाउन मोड का उपयोग न करने का फैसला किया है, क्योंकि यह एक प्रकार का यूजर इंटरफेस दिशानिर्देश है जिसे मैं अनुपालन करना चाहता हूं और उपयोगकर्ताओं को भ्रमित नहीं करना चाहता हूं।

+0

मैं जल्दबाजी में नहीं हूं और वास्तव में आईफोन 3 जीएस -4 एस पर माइक्रोफोन प्लेसमेंट के कारण समर्थन को ऊपर उठाना चाहता हूं। – Christoph

0

किसी और मामले जो कोई भी समस्याएं आ रही है Christoh के जवाब निम्नलिखित के बाद भी में:

मैं सिर्फ देखा परियोजनाओं plist iPad और iPhone (समर्थित इंटरफ़ेस झुकाव (आईपैड) और समर्थित इंटरफ़ेस झुकाव (iPhone के लिए अलग-अलग प्रविष्टियों) है)।

उम्मीद है कि मदद करता है।

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