当作为弹出框触发时更改 MasterViewController 的大小
Posted
技术标签:
【中文标题】当作为弹出框触发时更改 MasterViewController 的大小【英文标题】:Change the size of MasterViewController when fired as a popover 【发布时间】:2012-03-31 12:24:31 【问题描述】:当使用溢出视图控制器时,我有一个主视图和详细视图。当 iPad 处于纵向模式时,主视图显示为弹出窗口。如何调整主视图(弹出视图)的高度? 我试过了:
self.contentSizeForViewInPopover = CGSizeMake(320.0, 2 * 52.0);
但我不确定要设置这个吗?
【问题讨论】:
我也有同样的问题,升级到5.1开发工具后就开始了。 所以您认为是 SDK/OS 中的错误? 嗯,对我来说这是行为上的改变。我不确定这是不是一个错误,并且还没有花很多时间进行调查...... 这当然取决于SDK版本;我仍在使用工作示例的 5.0。 值得一提的是,我从 5.0 升级到 5.1,它在 5.0 中非常适合我。 【参考方案1】:您曾经可以使用 contentSizeForViewInPopover 在 viewDidLoad 中设置大小。但是在 ios 5.1 中,主视图控制器的显示样式被更改为滑入而不是显示为标准的弹出框。据我所知,它仍然是一个 UIPopover,但我们不能再修改它的大小。我在视图上尝试了 contentSizeForViewInPopover,在弹出框as suggested on the developer forums 上尝试了 setPopoverContentSize,都没有任何效果。
UISplitViewController class reference 不承认此更改,UIViewController 或 UIPopoverController 的类引用也不承认,View Controller Programming Guide 仍显示主视图控制器弹出窗口的旧样式。
您可以尝试更改详细视图中表格视图的高度,然后更改hide the popover's background。我自己没试过。
另外,由于您的详细视图显示的是地图,您可能需要disable the right-swipe gesture that now invokes the master view,以防止干扰地图手势。
【讨论】:
【参考方案2】:我见过 Apple 示例使用主视图控制器的 awakeFromNib 方法和 viewDidLoad。我不确定是否有一个压倒一切的理由来选择其中一个。
【讨论】:
奇数。我刚刚在一个测试拆分视图项目中尝试过,简单的案例就奏效了。 (我确实看到了一个“错误”,将新控制器推入主区域,然后返回到小控制器,将其设置回默认大小......不知道如何解决这个问题。)以上是关于当作为弹出框触发时更改 MasterViewController 的大小的主要内容,如果未能解决你的问题,请参考以下文章