显示模态视图控制器在UISplitViewController的详细视图

问题描述:

我在iPad应用程序中有一个UISplitViewController。当从表格中选择某些东西时,我希望在细节视图中淡入一个模式视图控制器。我可以毫无问题地呈现它,但出于某种原因,我无法使其与详细视图的框架相匹配。我希望它能够坚持旋转的细节视图控制器框架。有人对这个有经验么?这是我的代码来显示。详细视图控制器参考在应用程序委托中设置并传递给表控制器。显示模态视图控制器在UISplitViewController的详细视图

QuestionViewController_iPad *questionView = [[[QuestionViewController_iPad alloc] initWithNibName:@"QuestionViewController_iPad" bundle:nil] autorelease]; 
questionView.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 

// Not quite 
questionView.modalPresentationStyle = UIModalPresentationCurrentContext; 
questionView.questionQuizCon = [QuestionQuizConnection firstQuestionForQuiz:quizCatCon.quiz]; 

// Maybe something like this? 
[self.detailViewController presentModalViewController:questionView animated:YES]; 

当模态视图礼物,它的细节视图控制器的尺寸相匹配,但它确实不但它坐落在主视图控制器后面的屏幕的左上角。它也不会在轮换时调整大小。我有弹簧和支柱设置为自动调整大小和填充。旋转时的高度会发生变化,但不会填充宽度。

+0

尝试将'presentationStyle'设置为'UIModalPresentationPageSheet'并看看会发生什么。 – darvids0n

+0

这只是显示在页面中间的一切。 – smokingoyster

我无法让这看起来正确任何方式,我试过了,所以我最终只是使用视图转换,使它看起来像是从笔记本上撕下的页面。无论如何,这看起来更好。

// Transition the view on as a subview. 
[UIView transitionWithView:self.detailViewController.pageView duration:1.0 
        options:UIViewAnimationOptionTransitionCurlUp 
       animations:^ { 
        questionView.view.frame = CGRectMake(0, 0, self.detailViewController.pageView.frame.size.width, self.detailViewController.pageView.frame.size.height); 
        [self.detailViewController.pageView addSubview:questionView.view]; 

        // Watch this one 
        self.detailViewController.currentQuestionViewController = questionView; 
       } 
       completion:nil]; 

[self.detailViewController presentModalViewController:questionView animated:YES];之后,您应该设置center财产和/或framequestionView。确保您在之后设置呈现模态视图。

+0

这看起来不正确。主视图控制器消失了。 – smokingoyster

+0

这应该工作得很好。可能是你的执行错了某个地方。 – Nekto

+0

这当然有可能。我放弃了这种方法,并在今天插入测试。诚然是一个匆忙之一。 – smokingoyster