我有以下设置:
UINavigationController
。DialogViewController
ContentSizeForViewInPopover
设置为400 | 400 ContentSizeForViewInPopover
也设置为400 | 400 对话视图控制器中的一个元素公开了一长串子元素。如果此列表长于我定义的400个单位,如果在导航控制器上按下此列表,则弹出控制器的高度将增加。这很好,但如果我回到上一个菜单,尺寸将不会调整为我定义的400个单位。
有没有办法告诉DialogViewController
不要改变大小?
答案 0 :(得分:0)
您能否显示MonoTouch.Dialog特定用途的代码?您可能会看到此行为,因为每次TopViewController更改... UIPopoverController将尝试自动协商它自己的ContentSize。
您应该通过覆盖WillShowViewController方法并在那里设置SizeF来为每个呈现的UIViewController设置ContentSizeForViewInPopover。
public class NavDelegate : UINavigationControllerDelegate
{
public NavDelegate()
: base()
{
}
public override void WillShowViewController(UINavigationController navigationController, UIViewController viewController, bool animated)
{
base.WillShowViewController(navigationController, viewController, animated);
viewController.ContentSizeForViewInPopover = new SizeF(.., ..);
}
}