मेरे पास एक UIViewController है जिसमें अन्य व्यू कंट्रोलर हैं। प्रारंभिक ViewController viewDidLoad में स्थापित किया जाएगा:कंटेनर व्यू कंट्रोलर में UIPageViewController का घूर्णन
FirstViewController *first = [FirstViewController alloc] init];
first.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
first.view.frame = m_content.frame;
[self addChildViewController:first];
[m_content.view addSubview:first.view];
[first didMoveToParentViewController:self];
m_activeViewController = first;
यह कंटेनर नियंत्रक automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers लागू किया गया है हाँ वापस जाने के लिए। यह भी गैर सक्रिय ViewControllers
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
for(UIViewController *vc in m_viewControllers)
{
if(vc != [m_activeViewController]
[vc willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
}
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
for(UIViewController *vc in m_viewControllers)
{
if(vc != [m_activeViewController]
[vc didRotateFromInterfaceOrientation:fromInterfaceOrientation];
}
}
जब मेनू बटन उपयोग किया है मैं ViewControllers के बीच संक्रमण बनाने के लिए आगे रोटेशन परिवर्तन manualy को लागू किया है।
- (void)onMenuItemTapped:(id)sender
{
UIViewController *vc = [m_viewControllers objectAtIndex:sender.tag];
vc.view.frame = m_content.frame;
[self addChildViewController:vc];
[self transitionFromViewController:m_activeViewController toViewController:vc duration:0 options:UIViewAnimationOptionTransitionNone animations:nil completion:^(BOOL finished) {
[vc didMoveToParentViewController:self];
[m_activeViewController removeFromParentViewController];
m_activeViewController = vc;
}];
}
इस संक्रमण मेरी "सामान्य" ViewControllers के लिए ठीक काम करता है और वे उन्मुखीकरण परिवर्तन के बाद ठीक से प्रदर्शित कर रहे हैं, भले ही वे सक्रिय नहीं हैं। हालांकि, इनमें से एक चाइल्ड व्यू कंट्रोलर, जिसे सेकेंडसीवी कहा जाता है, में UIPageViewController एक बाल व्यू कंट्रोलर के रूप में है। मैं UIPageViewControllerDelegate और UIPageViewControllerDataSource इस SecondCV लिए सेट है और pageViewController में: spineLocationForInterfaceOrientation: मैं पोर्ट्रेट और लैंडस्केप UIPageViewControllerSpineLocationMid के लिए के लिए UIPageViewControllerSpineLocationMin लौट आते हैं। इस सेकेंडवीसी के लिए रोटेशन सही होने पर सही तरीके से काम करता है - लैंडस्केप पर दो पेज हैं और पोर्ट्रेट मोड पर एक सही तरीके से प्रदर्शित होता है। लेकिन जब यह सेकेंडवीसी सक्रिय नहीं है तो घूर्णन गलत है। भले ही पृष्ठ दृश्य नियंत्रक: spineLocationForInterfaceOrientation: कहा जाता है, पोर्ट्रेट और लैंडस्केप मोड दोनों में अभी भी एक पृष्ठ है। मैं इसे कुछ समय के लिए ठीक करने की कोशिश कर रहा हूं, लेकिन मुझे कोई अन्य विकल्प नहीं दिख रहा है। क्या आपके पास कोई विचार है कि इसे कैसे ठीक किया जाए?
धन्यवाद।
मैं पेज व्यू कंट्रोलर का भी उपयोग कर रहा हूं, और मैंने वीसी को एक सरणी में जोड़ा है, लेकिन विभिन्न वीसी के संक्रमण के उचित तरीके को नहीं जानते हैं, मैं पेज कर्ल संक्रमण का उपयोग करके अगले वीसी के लिए कैसे जा सकता हूं। क्या आप कृपया इसके लिए मुझे मार्गदर्शन कर सकते हैं या इसके कुछ नमूना कोड पोस्ट कर सकते हैं। –
[लिंक] (https://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html) मुझे लगता है कि आप यहां सबकुछ पा सकते हैं, अगर नहीं, तो मुझसे संपर्क करें – DaNY
मुझे कोई नहीं मिला है समाधान अभी तक, अगर आप मुझे मार्गदर्शन कर सकते हैं तो कृपया मेरे प्रश्न पर एक नज़र डालें। "Http://stackoverflow.com/questions/13776894/uipageviewcontroller-change-from-two-page-mode-to-one-page-mode-without-changi#comment18942540_13776894" –