从 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