मेरा एप्लिकेशन जो पोर्ट्रेट और लैंडस्केप ओरिएंटेशन दोनों का समर्थन करता है। मैं एक UITabBarController में स्थित निम्नलिखित कोड का उपयोग कर एक UIViewController से रीति से एक UIViewController पेश कर रहा हूँ:UIViewController लैंडस्केप मोड में प्रस्तुत किए जाने पर ठीक से नहीं दिख रहा है
self.modalViewController = [[ModalViewController alloc] init];
[self presentViewController:self.modalViewController animated:YES completion:^{
}];
ModalViewController एक नियंत्रक कि केवल लैंडस्केप में उपयोगकर्ता द्वारा देखा जाना चाहिए है। यह लैंडस्केप लाइट के लिए लैंडस्केप राइट फॉर्म को घुमाने में सक्षम होना चाहिए। इस तरह यह दिखता है:
@implementation ModalViewController
#pragma mark - UIViewController - Orientation
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
- (BOOL)shouldAutorotate
{
return YES;
}
#pragma mark - NSObject
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor greenColor];
}
#pragma mark - UIViewController - Status Bar
- (BOOL)prefersStatusBarHidden
{
return YES;
}
@end
नियंत्रक बाईं ओर से स्लाइड करता है और स्क्रीन को पूरी तरह से 95% कवर करता है। लेकिन 5% समय, यह नीचे से स्लाइड करता है और स्क्रीन के केवल आधा भाग को कवर करता है।
यहाँ यह कैसे लग रहा है जब यह ठीक काम कर रहा है:
और यहाँ है कि यह कैसे दिखता है, जब यह ठीक से काम नहीं कर रहा है:
मैं एक नमूना परियोजना है कि ऐसा कर सकते यहां पाए जाएं: https://github.com/TitouanVanBelle/Bug
उसके लिए यूआई परीक्षण लक्ष्य है एलपी इस मुद्दे को पुन: पेश करता है लेकिन यह शायद ही कभी काम करता है।
क्या किसी को पता है कि यह क्यों हो रहा है?
इसे पोस्ट करने के लिए धन्यवाद, समाधान – sage444