बदलते समय से अपने बच्चे दृश्य नियंत्रक को रिलाउट नहीं करता है, मैं निम्नलिखित दृश्य नियंत्रक (वीसी) संरचना बना रहा हूं।UIPavigationController पर UIPageViewController अभिविन्यास
[UINavigationViewController] -> [UIPageViewController] -> [UIViewControllers]
तो, इस कुलपति और आड़े ओरिएंटेशन का समर्थन करना चाहिए।
किसी भी पक्ष में ओरिएंटेशन बदलने पर मुझे एक समस्या है।
आप समस्या देख सकते हैं।
लाल क्षेत्र बच्चे कुलपति UIPageViewController पर की पृष्ठभूमि का रंग है।
नीला क्षेत्र UIPageViewController का पृष्ठभूमि रंग है।
मुझे लगता है कि बच्चे वीसी को UIPageViewController द्वारा रिलाउट नहीं किया गया था। मैंने इसे लंबे समय से समझ लिया है। आखिर में निम्नलिखित ओवरराइड फ़ंक्शन को कस्टम UIPageViewController में जोड़ने के लिए एक कार्य खोजने के लिए अंत में काम करना समाप्त हो गया।
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
[self setViewControllers:self.viewControllers
direction:UIPageViewControllerNavigationDirectionForward
animated:NO
completion:NULL];
}
हालांकि डाउनसाइड पर एक दृश्य को स्थानांतरित करना जल्द ही घूर्णन को समाप्त करने के रूप में दिखाया गया है। यह कोड मोटे तौर पर समस्या हल करता है।
वैसे भी, मैं वास्तव में किसी भी अच्छे और प्राकृतिक समाधान जानना चाहता हूं।
अद्यतन
मेरा ऐप iOS6 पर अच्छी तरह से काम करता है। यह आईओएस 7 बग हो सकता है?
आपने अलग-अलग अभिविन्यास के लिए 2 अलग-अलग xib बनाया है? –
जब मैंने अभिभावक दृश्य नियंत्रक के बाहर एक पृष्ठ दृश्य नियंत्रक का उपयोग किया था (जैसा कि आप कर रहे हैं) मैं लेआउट समस्याओं में भाग गया। जब मैं पृष्ठ दृश्य नियंत्रक को मूल दृश्य नियंत्रक में जोड़ता हूं तो वे समस्याएं गायब हो जाती हैं। मैंने एप्पल के पेज-आधारित एप्लिकेशन एक्सकोड टेम्पलेट से बॉयलरप्लेट कोड का उपयोग किया। – bilobatum
@MirkoCatalano सं। कस्टम UIPageViewController प्रोग्रामेटिक रूप से बनाया गया है, लेकिन UINavigationController ऐप का rootViewController है। मैं UI बनाने के लिए एक स्टोरीबोर्ड का उपयोग करता हूं। UIPageViewController के लिए मैंने स्टोरीबोर्ड का उपयोग नहीं करने का कारण कस्टम UITableViewCell पर एक बटन से बातचीत करना है। मैंने बटन बनाने के लिए स्टोरीबोर्ड का उपयोग नहीं किया क्योंकि बटन रनटाइम पर गतिशील रूप से बनाया गया है। –