从 MasterViewController 呈现的 ModalView 在 iOS 5.1 中不再是全屏

Posted

技术标签:

【中文标题】从 MasterViewController 呈现的 ModalView 在 iOS 5.1 中不再是全屏【英文标题】:ModalView presented from MasterViewController is no longer Full Screen in iOS 5.1 【发布时间】:2012-04-12 04:25:28 【问题描述】:

我有一个 Master/Detail 应用程序,并且在拆分视图中 MasterViewController 的右上角有一个按钮,该按钮使用模式视图加载“Info”视图控制器:

单击按钮时,视图被加载,并在 ios 5.0 及更低版本中填充整个屏幕(这是我想要的行为):

- (IBAction)showAppInfo:(id)sender 

    InfoViewController *infoViewController = [[InfoViewController alloc] 
        initWithNibName:@"InfoViewController" bundle:nil];
    infoViewController.delegate = self;
    [self presentModalViewController: infoViewController animated: YES];

但是,当我在 iOS 5.1 模拟器中运行它时,它不再填充整个 iPad 屏幕,而只填充主视图中的内容:

如何使这个 InfoViewController 像以前一样在 iOS 5.1 中填充整个屏幕?

【问题讨论】:

【参考方案1】:

我假设你正在使用 UIPopoverController,试试这个

InfoViewController *infoViewController = [[InfoViewController alloc] 
    initWithNibName:@"InfoViewController" bundle:nil];
UIPopoverController *popoverController      =   [[UIPopoverController alloc] initWithContentViewController:infoViewController];
    popoverController.popoverContentSize        =   CGSizeMake(500.0, 583.0);
    popoverController.delegate                  =   self;
    [popoverController presentPopoverFromRect:sender.bounds inView:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

【讨论】:

只是好奇,有没有办法在不手动更新弹出框尺寸的情况下做到这一点?因为我假设一旦信息视图被关闭,我将不得不将其调整回正常大小。 如果你想要一个弹出控制器,你应该指定它的尺寸。现在从你的图片中,我了解到你有一个主按钮,当你点击它时,你会显示你的 InfoViewController 控制器吗?所以你必须这样做。 如果是这样,为什么在 iOS 5.1 之前不需要这样做?

以上是关于从 MasterViewController 呈现的 ModalView 在 iOS 5.1 中不再是全屏的主要内容,如果未能解决你的问题,请参考以下文章

在 UISplitViewNavigator 的 MasterViewController 上呈现 ViewController

无法从 MasterViewController 访问 DetailViewController

将数据从 DetailViewController 发送到 MasterViewController

如何将整数从 MasterViewController 传递给 DetailViewController? [复制]

访问其他类的核心数据数据库

Push Segue 后更改回按钮标题