Monotouch - 使用UIPopoverController的iPad模拟器问题

时间:2011-07-01 16:50:59

标签: ipad xamarin.ios ios-simulator uipopovercontroller

我收到以下错误,仅在模拟器上而不在iPad本身上!

Monotouch.Foundation.MonoTouchException has been thrown 
"Objective-C exception thrown. Name: NSGenericException 
Reason: - [UIPopoverController dealloc] reached while popover is still visible."

有没有人知道如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

我的猜测是你让垃圾收集器删除引用。

我很想知道这是怎么回事,所以我可以在将来添加一个特例,但是现在,请尝试保留对UIPopover和UIPopoverController的引用。

答案 1 :(得分:2)

这会导致问题......

private void GetPopsUps()
{           
UIPopoverController uipoc = new UIPopoverController(new PopController());
uipoc.PopoverContentSize = new SizeF(200f, 300f);
uipoc.PresentFromRect (new RectangleF(0,0, 200, 300), this.View, 
UIPopoverArrowDirection.Up, true);
}

这解决了它(对我而言)..

UIPopoverController uipoc;
private void GetPopsUps()
{           
uipoc = new UIPopoverController(new PopController());
uipoc.PopoverContentSize = new SizeF(200f, 300f);
uipoc.PresentFromRect (new RectangleF(0,0, 200, 300), this.View, 
UIPopoverArrowDirection.Up, true);
}