Monotouch-带UIPopoverController的iPad模拟器问题

Monotouch-带UIPopoverController的iPad模拟器问题,ipad,xamarin.ios,ios-simulator,uipopovercontroller,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." 有人知道如何解决这个问题吗?我猜是您让垃圾收集器删除了引

我得到以下错误,只是在模拟器上,而不是在iPad上

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

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

我猜是您让垃圾收集器删除了引用


我很想知道这是如何发生的,因此我可以在将来添加一个特殊情况,但现在,请尝试保留对UIPopover和UIPopoverController的引用。

我猜是您让垃圾收集器删除了该引用

我很想知道这是如何发生的,因此我可以在将来添加一个特殊情况,但现在,请尝试保留对UIPopover和UIPopoverController的引用。

这会导致问题

这就解决了(对我来说)

这导致了问题

这就解决了(对我来说)


作为Miguel answer,您必须为UIPopoverController创建一个实例变量。作为Miguel answer,您必须为UIPopoverController创建一个实例变量。模拟器比在实际设备上更积极地运行GC。这有助于发现实际设备上的GC问题,这些设备的内存容量比您可能要在其上或模拟器中测试的设备上的内存容量低得多(因为它将使用您的机器提供的电源)。我在设备中也遇到了此问题。模拟器比实际设备上运行GC的速度快得多。这有助于发现实际设备上的GC问题,这些设备的内存容量比您可能要在其上或模拟器中测试的设备低得多(因为它将使用您的机器提供的电源)。我在设备中也遇到了这个问题
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);
}