今更ですが、iPadのUIActionSheetについて

iOSアプリ開発者の方には何を今更な話でしょうが…

iPadでUIActionSheetを表示する時にanimated:NOの場合、キャンセルボタンは定義してあっても表示されません。
これはアップルのガイドラインにも記述があります。UIActionSheet以外の場所をタップすれば消えるからです。

で、あるクライアントさんに頼まれてアプリを作ったのですが、キャンセルボタンが無いので、ToolBarのUIActionSheetを表示するボタンをタップして消そうとしたら、画面が暗くなったと報告が。

試してみたら、確かにその通りで…UIActionSheetを表示すると画面が一段暗くなるんですが、表示の為のボタンを再度タップするとUIActionSheetがもう一枚表示されて画面が更に暗くなります。UIActionSheetは同じ場所に表示されるので、2枚出ているとは気付かないんですね。

なので、iPadの場合、UIActionSheetを表示したら、ToolBarButtonItemはenabled=NOにしないと大変な目に遭います。

自分メモですね(笑)