iOS

[Swift]iPadのActionSheet表示でクラッシュする問題

投稿日:2017年11月1日 更新日:

はじめに

こんにちは、nukkyです。
私は普段iPhoneアプリの開発を主に行っているのですが
慣れか油断かiPadでの確認をおろそかにしてしまい、
クラッシュバグの存在に長い間気づかないでいたので
戒めつつ備忘録としてここに残したいと思います。

エラー内容

エラー原因

まずはサンプルコード
ボタンをタップしたらUIAlertControllerで
ActionSheetを表示するサンプルです。

このソースを実行するとiPhoneでは問題なく表示されますが
iPadで実行すると以下のクラッシュ発生してしまいます。。。

結論を述べると、

UIAlertControllerでActionSheetを表示する際に
popoverPresentationControllerの
sourceViewを指定しないとクラッシュします!!!

というわけで上記ソースを少し修正。

この一文を加えることでクラッシュを回避できます。

まだこれで解決ではない

上記の対応によりクラッシュは回避できましたが、
このままiPadで実行すると以下の様な表示になります。

このままだと不恰好なので、
ActionSheetの表示位置を調整します。

これを実行すると以下の様な表示になります。

ちなみに、popoverPresentationControllerの
sourceRectですが、iPhoneで表示する際には全く影響がないので
iPad用に処理を分ける必要はないです。

 

さいごに

確認すれば、すぐに発生する不具合に
長いこと気づかず、本当に恥ずかしかったです、、、
今回に限った話ではないですが何事も確認というものは改めて大事だと思いました。
そういう思いで書いた、この記事が誰かのお役にたてれば嬉しいです。

-iOS
-

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

swift

Swiftでシェア機能や外部アプリ起動の導線を簡単に実装できるライブラリ「SwiftShareBubbles」

1 はじめに2 準備3 実装3.1 表示3.2 用意されているパターン4 さいごに はじめに こんにちは、nukkyです。 今回はSNSでのシェア機能や外部アプリ起動の導線を追加したいときに 簡単に実 ...

swift

Swift3でRealmを使ってみる

1 はじめに1.1 前提条件2 事前準備2.1 Realmのインストール・設定2.1.1 Carthageファイルの生成2.1.2 CarhageにてRealmをインストール2.1.3 Realmをイ ...

swift

iOSで画像の任意の場所をぼかし処理する方法

1 はじめに1.1 前提条件2 準備3 実装3.1 ぼかし処理のイメージ画像3.2 サンプルコード4 さいごに はじめに iOSで写真の任意の場所にぼかし処理をしたいケースがありましたので、 iOSで ...

swift

iOSでライブラリFSCalendarをつかって簡単にカレンダー表示

1 はじめに2 準備3 実装3.1 Storyboard3.2 コード3.3 タップの取得4 さいごに はじめに こんにちは、nukkkyです。 ツール系アプリ開発時にカレンダー表示を よく使うと思い ...

swift

[Swift3] ナビゲーションバーとステータスバーの色変更

1 はじめに1.1 前提条件2 ナビゲーションアイテムの色変更3 ナビゲーションバーの色変更4 ナビゲーションタイトルの色変更5 ステータスバーの色変更6 さいごに はじめに どうも、はじめです。 今 ...

amazon

Web版MyCoach

私たちはより広い方にコーチングを知ってもらいたいと考えています。
下記のサイトにて、コーチの方々を紹介しておりますので、よろしければご覧ください。

アプリ情報

私たちは、目標を達成したい方を応援する、TODOアプリもリリースしております。
下記のアイコンから無料でダウンロードできます。

リンク

follow us in feedly
2017年11月
« 10月  
 1234
567891011
12131415161718
19202122232425
2627282930