iOS8でpresentViewControllerしたら、透過表示できない場合の解決策

モーダル表示が真っ黒になる

iOSのアプリを作る場合、見た目は色々あれど下記のようなモーダル表示を良く行います。

スクリーンショット 2014-10-01 13.13.26

このような表示をする場合はpresentViewControllerを使い、モーダル表示される側のViewControllerを透過させる事で表示が行えます。

※わかりにくいですが、青がpresentViewControllerをした側で、オレンジがpresentViewControllerで表示された側です。

 しかし、iOS8のSDK(XCode6)でビルドした場合では、下記のように表示されてしまいました。

スクリーンショット 2014-10-01 13.17.59

モーダル表示される側は表示されていますが、後ろに居るはずのViewControllerが真っ黒になってしまいます。

解決策として

調べた結果、iOS8ではUIModalPresentationStyleに新しく「UIModalPresentationOverCurrentContext」が追加されており、表示される側のViewControllerに下記を追加する事で、真っ黒になる現象を解決する事ができます。

 また、presentViewControllerする時に追加しても大丈夫です。

実行した結果は下記になります。

スクリーンショット 2014-10-01 13.19.22 

 従来通りに表示する事ができました。

●この記事を書いた人