मेरे पास एक खाली एप्लिकेशन है और इसमें कोई स्टोरीबोर्ड या xib शामिल नहीं है। मैं एक छिपी स्थिति बार चाहता हूं और केवल परिदृश्य अभिविन्यास का समर्थन करता हूं। दोबारा, मैं केवल उन कोडों को कोड के भीतर नहीं बनाना चाहता हूं और Info.plist को स्पर्श नहीं करता हूं।परिदृश्य अभिविन्यास का उपयोग करते समय गलत आकार के साथ UIWindow
समस्या
मैं एक नियंत्रक कि कहते हैं केवल समर्थित उन्मुखीकरण परिदृश्य है के साथ एक UIWindow पैदा करते हैं। उस स्थिति में मेरा UIWindow पोर्ट्रेट मोड के आयाम में बनाया गया है और घुमाने नहीं है। अपेक्षित परिणाम एक स्क्रीन होगी जो पूरी तरह से साइयन है।
#import "AppDelegate.h"
#import "AppViewController.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor cyanColor];
self.window.rootViewController = [[AppViewController alloc] init];
[self.window makeKeyAndVisible];
return YES;
}
@end
यह मेरा नियंत्रक है:
यह मेरा प्रतिनिधि है
#import "AppViewController.h"
@implementation AppViewController
- (BOOL)shouldAutorotate {
return YES;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationLandscapeLeft;
}
- (BOOL)prefersStatusBarHidden {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscape;
}
@end
क्या मैं इतनी कोशिश की है अब तक
अगर मैं के बाद rootViewController सेट कॉलिंग बनाना और अदृश्य सबकुछ पहले काम करना प्रतीत होता है।
self.window.backgroundColor = [UIColor cyanColor];
[self.window makeKeyAndVisible];
self.window.rootViewController = [[AppViewController alloc] init];
अभी भी कुछ समस्याएं हैं। सबसे पहले मुझे यह पसंद नहीं है क्योंकि यह बहुत नाजुक लगता है।
ऐसा लगता है कि स्थिति पट्टी नहीं है: दूसरा समस्या यह है कि एक अधिक जटिल आवेदन rootViewController मैं निम्नलिखित परिणाम प्राप्त के रूप में एक GLKViewController सेट कि में (उम्मीद बाईं तरफ कोई काला क्षेत्र होगा) है पर्याप्त जल्दी छुपाया। कई इशारा recognizers सक्रिय और GLKViewController में हैं और काला क्षेत्र पर क्लिक निम्नलिखित लॉग संदेश पैदावार:
2014-09-25 13: 20: 42.170 StackOverflowExample [6971: 107,907] में अप्रत्याशित नहीं के बराबर खिड़की _UIApplicationHandleEventFromQueueEvent, _windowServerHitTestWindow: UIClassicWindow: 0x7fa20b805e00; फ्रेम = (0 0; 375 667); userInteractionEnabled = नहीं; इशारा रिकॉग्नाइज़र = एनएसएआरएआरई: 0x7fa20b80a620; परत = UIWindowLayer: 0x7fa20b806890
मैं भी एक खाली UIViewController संलग्न और एक उप-दृश्य के रूप में मेरे विचार को जैसे चाहें, विभिन्न अन्य परिवर्तन का प्रदर्शन किया। उस स्थिति में मेरा विचार सही दिखता है लेकिन खिड़की अभी भी गलत आयामों का उपयोग कर रही है।
सब कुछ सही घुमाता है अगर मैं अपने व्यू कंट्रोलर में समर्थित इंटरफेसऑरिएंटेशन विधियों को ओवरराइड नहीं करता हूं। लेकिन यह निश्चित रूप से नहीं है जो मैं चाहता हूं।
साझा करने के लिए धन्यवाद। मैंने यह जानने का प्रयास करने में कई घंटे बिताए कि इसे कैसे किया जाए। –
आईओएस 8.1 के साथ और स्विफ्ट का उपयोग करके मुझे अपनी समस्या को हल करने के लिए UIWindow की चौड़ाई और ऊंचाई पर एक छोटा सा अंश जोड़ने की आवश्यकता है: http://stackoverflow.com/a/26452679/190599 – CodeReaper
बहुत अच्छा काम करता है, धन्यवाद बहुत। –