正如我從閱讀文檔中瞭解到的,UIPopoverControllers僅在iPad上受支持。當UIUserInterfaceIdiomPad下MonoTouch - 如何僅在使用iPad設備時聲明UIPopoverController?
沒有運行]叫:因此,如果您嘗試聲明一個變量作爲UIPopoverController並運行在iPhone模擬器或iPhone上的應用程序,你會得到一個錯誤,如:UIPopoverController initWithContentViewController
所以我有一個通用的monotouch應用程序我嘗試了,我想在用戶使用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()); }
如何我只聲明:如果設備是一臺iPad
UIPopoverController DetailViewPopover = new UIPopoverController(new PopoverContentViewController());
一部分?我需要UIPopoverController在公共部分類中,以便我可以在其他地方公開訪問它。
謝謝@poupou!我明白了,所以聲明它爲null意味着iPhone仍然會枚舉這些代碼,但是因爲它是空的,所以這個語句沒有問題?然後,我會爲iPad設備指定代碼並在需要時爲其指定值。這測試後效果很好:) – Shogan
是的,Apple在'init'(爲MonoTouch映射到構造函數中)執行了設備檢查。所以只需要有變量,未指定,就可以了(對於iPhone)。 – poupou