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

时间:2011-10-06 23:15:05

标签: ios ipad

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

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];

当模态视图显示时,它与详细视图控制器的大小匹配,但它没有,但它位于主视图控制器后面的屏幕的左上角。它也不会在旋转时调整大小。我将弹簧和支柱设置为自动尺寸和填充。旋转时高度会发生变化,但不会填充宽度。

2 个答案:

答案 0 :(得分:0)

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

// 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];

答案 1 :(得分:-1)

[self.detailViewController presentModalViewController:questionView animated:YES];之后,您应设置center属性和/或frame questionView。确保在呈现模态视图后将其设置为