[iOS] iPhone版作った後、iPad対応のユニバーサルアプリを作ったときはUIAlertControllerのpopoverPresentationControllerをチェックする!

2017/09/26

こんにちは。きんくまです。

ちょっと前にフォルメモのアップデートをしました。その記事は今度別で書こうと思います。
それで、今回のアップデートでiPad対応のユニバーサルアプリにしたのですが、またやってしまいまして。

アラートビューのアクションの場合は、以下の2つを設定しないとアプリが落ちてしまうんです、、。
UIAlertControllerStyle.alertの場合は特に何もしなくても大丈夫です。

//.actionSheetのときは
let alertController:UIAlertController = UIAlertController(title: nil, message: nil, preferredStyle: UIAlertControllerStyle.actionSheet)

//popoverPresentationControllerの2つのプロパティを必ず設定しないとiPadで落ちます!
if let popoverPresentationController = alertController.popoverPresentationController {
    popoverPresentationController.sourceView = photoButton.superview
    popoverPresentationController.sourceRect = photoButton.frame
}

もしくは、アクションを出すbarButtonItemを設定すればOK

alertController.popoverPresentationController?.barButtonItem = shareButton

これ、前に電卓アプリの方でもやってしまったことがあります。
>> [iPhone|iOS] Zippy電卓 – 消費税と割引計算 4.1.1 アップデートしました。popoverPresentationControllerを設定しないとアプリが落ちます

iPad専用だと毎回チェックするから大丈夫なんですが、iPhone版からの変更だと忘れてしまう、、。
一応いま全部チェックしたら漏れがなかったので、また審査に出そうと思います。

LINEで送る
Pocket

自作iPhoneアプリ 好評発売中!
フォルメモ - シンプルなフォルダつきメモ帳
ジッピー電卓 - 消費税や割引もサクサク計算!

LINEスタンプ作りました!
毎日使える。とぼけたウサギ。LINEスタンプ販売中! 毎日使える。とぼけたウサギ

ページトップへ戻る