【问题标题】:Display Modal View Controller over detail view in UISplitViewController在 UISplitViewController 中的详细视图上显示模态视图控制器
【发布时间】:2011-10-06 23:15:05
【问题描述】:

我在 iPad 应用中有一个 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];

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

【问题讨论】:

  • 尝试将presentationStyle 设置为UIModalPresentationPageSheet 看看会发生什么。
  • 这只是显示在页面中间的所有内容之上。

标签: ios ipad


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    在[self.detailViewController presentModalViewController:questionView animated:YES]; 之后,您应该设置center 属性和/或questionView 的frame。请务必在在呈现模态视图之后设置它。

    【讨论】:

    • 这看起来也不对。主视图控制器消失了。
    • 这当然是可能的。我放弃了这种方法,今天刚刚进行了测试。诚然是一个匆忙的人。
    猜你喜欢
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    相关资源
    最近更新 更多