[iPhone|iOS] Zippy電卓 – 消費税と割引計算 4.1.1 アップデートしました。popoverPresentationControllerを設定しないとアプリが落ちます

2016/02/28

こんにちは。きんくまです。
10日ほど前にZippy電卓のアップデートをしました。
今回のアップデートは不具合の修正です。iPad版で履歴共有ボタンを押すとアプリが落ちるというものでした。すみませんでした!

それで、このブログは基本的に開発者の人しか見ていないと思うので、どうしてそういうのが起きるのか?と情報共有をしようかと。

Zippy電卓はもともとiPhoneアプリ専用で作っていました。
それで、4.0からiPad対応にしました。AutoLayoutで画面を作っていると、かなり少ない手順でiPadの画面対応自体はできます。試してみたらすごい簡単だったみたいな。ただ、iPad専用に画面を変更しようとするとそれなりに大変なのです。Zippy電卓はiPad版は微妙にレイアウトを変えているので、ちょっと大変だったみたいな。

ただ、画面対応が完成したやれやれ!と思ったところで、思わぬ自体になりました。
iPhone版でActionSheetを設定していてiPad版で何もしていないとアプリが落ちるのです!!

例えばiPhoneのこんな感じのところです。ここはiPadだと落ちます。

ZippyCalc_iPhone_actionSheet

これをiPadでちゃんと設定するとこうなります。

ZippyCalc_iPad_actionSheet

設定方法なのですが、こんな感じです。

        let alertController:UIAlertController = UIAlertController(title:"タイトルが入りますですよ", message: nil, preferredStyle: UIAlertControllerStyle.ActionSheet)

        //以下の2行が大切でございますよ
        alertController.popoverPresentationController?.sourceView = self.view
        alertController.popoverPresentationController?.sourceRect = tableViewCellFrame

UIAlertControllerのpopoverPresentationControllerのsourceViewとsourceRectを設定する必要があります。

今回Zippy電卓では、UIAlertControllerではなく、UIActivityViewControllerの方で起きておりましたですよ。

iPad専用だと最初からきちんとテストしながら開発するので抜けはないのですが、iPhone版からユニバーサルにするとテスト漏れが起こることもあるのかなーと。

LINEで送る
Pocket

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

ページトップへ戻る