2010-08-29 14 views
6

डिवाइस का अभिविन्यास बदलते समय मैं एक नया xib लोड करने के बारे में कैसे जाऊं? यानी एक लैंडस्केप ओरिएंटेड xib लोड करें जब डिवाइस लैंडस्केप ओरिएंटेशन में बदल जाता है और पोर्ट्रेट के साथ विपरीत होता है। और मैं स्वचालित रूप से एक अभिविन्यास परिवर्तन का पता लगाने और वहां से समायोजन के बारे में कैसे जाउंगा?एक्सकोड में डिवाइस अभिविन्यास बदलते समय मैं xib कैसे लोड करूं?

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged) name:UIDeviceOrientationDidChangeNotification object:nil]; 

और इस जोड़ें:

उत्तर

7

जाहिरा तौर पर सब मुझे क्या करना है हाँ के लिए एक दृश्य के आधार एप्लिकेशन बारी shouldAutoRotateToInterfaceOrientaion बनाते हैं, और अलग-अलग xib फाइलों के साथ दो UIViewController उपवर्गों बनाते हैं, तो एप्लिकेशन दृश्य नियंत्रक में जोड़ना है एप्लिकेशन दृश्य नियंत्रक में विधि के रूप में अच्छी तरह से:

-(void)orientationChanged { 
    UIDeviceOrientation orientation = [UIDevice currentDevice].orientation; 
    if (orientation == UIDeviceOrientationPortrait || orientation == UIDeviceOrientationPortraitUpsideDown) { 
     [[NSBundle mainBundle] loadNibNamed:@"Portrait" owner:self options:nil]; 
    } 
    else { 
     [[NSBundle mainBundle] loadNibNamed:@"Landscape" owner:self options:nil]; 
    } 

} 

और यह thats, जब डिवाइस सही ओरिएंटेशन में xib ऑटो लोड घुमाया जाता है।

संपादित करें: यदि आप भी दो viewcontrollers प्रोग्राम के रूप में जोड़ने (@property और उन्हें भी @synthesize) की जरूरत है, और आईबी में appviewcontroller.xib में दो viewcontrollers वर्ग के नाम से प्रत्येक के ViewController उपवर्ग के लिए इसी के साथ प्रत्येक आपके द्वारा बनाए xib। फिर एक दृश्य को फ़ाइल के मालिक से कनेक्ट करें और आईबी में बनाए गए व्यू कंट्रोलर को आईबी में आउटलेट कनेक्ट करें और यह सभी

+0

यह एक आईफोन के लिए बहुत अच्छा काम करता है। आईपैड को अतिरिक्त कदमों की आवश्यकता है: # डिग्री परिभाषाएं (x) (x) * M_PI/180.0); (self.view.transform = CGAffineTransformMakeRotation (DegreesToRadians (180)) कम से कम मेरे मामले में। – TrekOnTV2017

+0

+1 मेरे लिए काम किया .. धन्यवाद .. :) – HDdeveloper

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