ドキュメントを読んで理解しているように、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をパブリック部分クラスに入れて、他の場所でパブリックにアクセスできるようにする必要があります。