据我阅读文档了解到,UIPopoverControllers 仅在 iPad 上受支持。因此,如果您尝试将变量声明为 UIPopoverController 并在 iPhone 模拟器或 iPhone 上运行应用程序,则会收到如下错误:
UIPopoverController initWithContentViewController:] 未在 UIUserInterfaceIdiomPad 下运行时调用
所以我有一个我正在尝试的通用单点触控应用程序,当用户使用 iPad 时,我想在其中使用 UIPopoverController,对于 iPhone,我有另一个解决方案。
这就是我目前声明它的方式,但显然在 iPhone 上运行不起作用,并且我收到上述错误消息。
public partial class IOPSCalculatorViewController : UIViewController
{
static bool UserInterfaceIdiomIsPhone {
get { return UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone; }
}
static bool UserInterfaceIdiomIsIPAD {
get { return UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad; }
}
UIPopoverController DetailViewPopover = new UIPopoverController(new PopoverContentViewController());
}
我怎样才能只声明:
UIPopoverController DetailViewPopover = new UIPopoverController(new PopoverContentViewController());
如果设备是 iPad 的一部分?我需要 UIPopoverController 位于公共部分类中,以便我可以在其他地方公开访问它。