Swift なんでiPadのActionSheetはエラー

Swift Swift
Swift

Swiftでアプリを作ってて、審査に出して初めて気づきました。
iPadでActionSheetを使う場合、単に普通のアラート感覚で使うとエラーになるんですね・・・
通常iPhoneの端末で確認していたので、全く気づきませんでした・・・

let alert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)

// ↓ selfはViewControllerを指している状態
alert.popoverPresentationController?.sourceView = self.view
alert.popoverPresentationController?.sourceRect = CGRect(x: screenSize.size.width/2, y: screenSize.size.height, width: 0, height: 0)

self.present(alert, animated: true, completion: nil)

alert.popoverPresentationController?.sourceView

alert.popoverPresentationController?.sourceRect

この2つの指定を行うとエラーが発生せず、実行できます。
確かに、iPadの場合表示エリアが広いので、そのままアラートを表示すると無駄な空間がある気がします。

アップルの審査でエラーが出てるって事で注意されて初めて知りました。
あんまり本とかにも載っていない気が・・・(覚えてないだけかもですが(・・;))

ActionSheetを使用する時はご注意を・・・

コメント

タイトルとURLをコピーしました