मैं आईओएस 8.iOS 8 - रोटेशन स्थिति बार नियंत्रण
मेरे ऐप में स्थिति पट्टी के नए ऑटो छुपा के साथ मुसीबतों का एक बहुत हो रही है टॉगल के बाद पोर्ट्रेट मोड में भी गायब हो जाते हैं बनाता है, मुझे मिल गया है एक दृश्य जिसमें उपयोगकर्ता एक बार टैप करता है, नेविगेशन बार और स्टेटस बार गायब हो जाता है।
जब परिदृश्य में, स्थिति पट्टी से ही छुपाता है और यह मेरे लिए ठीक है। मुझे केवल पोर्ट्रेट मोड में इसकी आवश्यकता है।
लेकिन समस्या यह है कि जब डिवाइस परिदृश्य होता है और बार दिखाया जाता है, जब उपयोगकर्ता बार को टॉगल करने के लिए दो बार टैप करता है (इसलिए दिखा रहा है), और डिवाइस को पोर्ट्रेट मोड में बदल देता है, तो स्टेटस बार अभी भी छिपा हुआ है।
मूल रूप से मैं iOS 8 पर अपनी प्राकृतिक व्यवहार के साथ हस्तक्षेप के बिना ले जाएँ करने में सक्षम होने की जरूरत है, तो मैं परिदृश्य सारांश यह है:
- उपयोगकर्ता tabBar और NavigationBar और स्थिति बार के साथ कहा दृश्य में प्रवेश करती है;
- ध्यान में रखते हुए एक बार नल और सलाखों के गायब
- उपयोगकर्ता डिवाइस घूमता है, स्थिति बार दिखाई नहीं दे - StatusBar अभी भी छिपा हुआ, ठीक है - ठीक है, मैं इस
- उपयोगकर्ता फिर से टैप करता सलाखों दिखाना चाहते हैं।
- उपयोगकर्ता परिदृश्य से चित्र को बदलता रहता है और ..
- स्थिति बार अभी भी छिपा हुआ - नहीं ठीक है।
मैं willRotate पर स्थिति बार को समायोजित करने की कोशिश की है, लेकिन मैं एक मेस जिसमें प्रस्थिति बार दृश्य होगा, जब यह नहीं होना चाहिए था बनाया है। कोड मैं उपयोग कर रहा हूँ:
- (BOOL)prefersStatusBarHidden
{
return statusBarHidden;
}
-(void)toggleBars:(UITapGestureRecognizer *)gesture{
CATransition *animation = [CATransition animation];
animation.type = kCATransitionFromBottom;
animation.subtype = kCATransitionFromTop;
animation.duration = .2f;
[animation setTimingFunction:[CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut]];
BOOL toggleNavigationBar = self.navigationController.navigationBarHidden;
[self.navigationController.navigationBar.layer addAnimation:animation forKey:nil];
[self.navigationController setNavigationBarHidden:!toggleNavigationBar animated:YES];
BOOL toggleTabHidden = self.tabBarController.tabBar.hidden;
if(![[[NSUserDefaults standardUserDefaults] objectForKey:@"showTabBar"]isKindOfClass:[NSNull class]]){
if([(NSNumber*)[[NSUserDefaults standardUserDefaults] objectForKey:@"showTabBar"]boolValue])
{
[self.tabBarController.tabBar.layer addAnimation:animation forKey:nil];
[self.tabBarController setHideTabBar:!toggleTabHidden animated:YES];
}
}
statusBarHidden = [UIApplication sharedApplication].statusBarHidden;
[[UIApplication sharedApplication] setStatusBarHidden:!statusBarHidden withAnimation:UIStatusBarAnimationSlide];
[self setNeedsStatusBarAppearanceUpdate];
if (IS_IOS8){
if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)){
if (statusBarHidden){
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
}
}
}
मैं जो में एक ध्वज स्थापित करने के बारे में सोच रहा था जब स्थिति बार छिपा हुआ है जब परिदृश्य और सभी नियंत्रण में देखते हैं, रोटेशन पर यह स्थिति बार ट्रिगर करेगा। बिना सफलता के, जाहिर है ..
किसी भी मदद की अत्यधिक सराहना की।
धन्यवाद अपने ViewController में जोड़ने के लिए की जरूरत के संस्करण! मुझे सही रास्ते पर रखा! मुझे केवल एक चीज यह देखने के लिए एक और बूल जोड़ना था कि अभिविन्यास को स्टेटस दिखाना चाहिए या नहीं। इसने एक जादू की तरह काम किया! – Phillip
बस याद रखें कि यह केवल पुराने संस्करणों के लिए आईओएस 7 से काम करता है [[यूआईएप्लिकेशंस साझा एप्प्लिकेशंस] setStatusBarHidden ...] का उपयोग किया जाना चाहिए। मदद करने में खुशी! – hybridcattt
सौभाग्य से मुझे केवल आईओएस 7 और उच्चतम का समर्थन करने की आवश्यकता है, तो यह ठीक है! एक बार फिर धन्यवाद। – Phillip