Edited at

iOSでポップアップビューを実装する(with Storyboard)

More than 3 years have passed since last update.

昨日の記事の「iOSでポップアップビューを実装する」ではうまく実現できなかったStoryboardを使ったポップアップビューの実装ですが、mono0926さんのアドバイスを受けて、再度Storyboardを使ってポップアップビューを実現してみました。


modalTransitionStyleを設定する。

今回はiOS7での対応を試してみます。(iOS8版は後日)


ViewController.m


- (void)viewDidLoad
{
[super viewDidLoad];

self.modalPresentationStyle = UIModalPresentationCurrentContext;

}


呼び出し側のViewControllerのmodalPresentationStyleを設定することでPopupViewControllerがモーダルで表示されたときも、下にあるビューは存在しているので透過して上に乗っているように見えます。


アニメーション設定

modalPresentationStyleを設定することで、入りのアニメーションが固定化されてしまいました。

呼び出される側のPopupViewControllerのmodalTransitionStyleを変更しても入りアニメーションは同じでした。

こちらはおそらくsegueをcustom指定することでアニメーションを調整できると思いますが、今回はとりあえずこれでOKとします。

しかし、dismiss時のアニメーションはmodalTransitionStyleで指定したとおりになるので、入りアニメーションに比較的近いアニメーションということでUIModalTransitionStyleCrossDissolveを指定してます。


PopupViewController.m


- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
}



サンプルコード

https://github.com/g-1/PopupViewController/tree/storyboard


次回

今回はテストしなかったポップアップ時のアニメーションについて検証してみます。