iOSでpopoverを行おうとしたら、背景が真っ黒でなんでやねん!という事態に陥った方もいるのではないでしょうか(私は陥りました)。
ここでは、標準?のStoryboardとsegueを利用した形でのpopoverの方法をご紹介します。
1. popover用のViewControllerを作成する
popover用のViewControllerについて、重要なポイントは以下2点です。
- Viewの背景を透明(Clear Color)にする
- Viewの上にpopover用のViewを重ねる
イメージ的には以下のような感じです。選択されているViewのBackgroundがClear Colorになっていて、その下のViewが実際現れるpopoverの画面になります。
2. Segueでつなぐ
呼び出し元からpopover用のViewControllerはPresentModally、popoverを閉じるために閉じるボタン的なものから呼び出し元のViewControllerまでをDismissのSegueでつなぎます。
ポイントなのは、PresentModallyのPresentationの種別を"Over Current Context"にすること。普通のCurrentContextだとpopoverした瞬間に背景が真っ黒になってしまいます。
これにて、コードレスでpopoverが実現できたはず。