如何在Monotouch.Dialog中设置弹出窗口大小?

时间:2012-03-01 12:42:44

标签: xamarin.ios monotouch.dialog

我有以下设置:

  • 我的控制器继承UINavigationController
  • 它拥有DialogViewController
  • 的成员
  • 我的控制器的ContentSizeForViewInPopover设置为400 | 400
  • DialogViewController的ContentSizeForViewInPopover也设置为400 | 400

对话视图控制器中的一个元素公开了一长串子元素。如果此列表长于我定义的400个单位,如果在导航控制器上按下此列表,则弹出控制器的高度将增加。这很好,但如果我回到上一个菜单,尺寸将不会调整为我定义的400个单位。

有没有办法告诉DialogViewController不要改变大小?

1 个答案:

答案 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(.., ..);
    }
}