iOSのpresentModalViewControllerで背景を透明にする方法
色々調べた結果、アニメーションを維持しつつ透明にするには下記がベストかも。
NextViewController *nextViewController = some view controller; UIViewController *rootViewController = [UIApplication sharedApplication].delegate.window.rootViewController; [self presentViewController:nextViewController animated:YES completion:^{ [nextViewController dismissViewControllerAnimated:NO completion:^{ rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext; [self presentViewController:nextViewController animated:NO completion:nil]; rootViewController.modalPresentationStyle = UIModalPresentationFullScreen; }]; }];
最初からUIModalPresentationCurrentContextにするとアニメーションが消滅するので、アニメーション付きでpresentModalしてから1回消して再表示する。
あと、UIModalPresentationCurrentContextはrootViewControllerに設定しないと画面表示後に親ビューが真っ白になってしまう。
ちなみに、dismissしちゃってるわけなのでライフサイクルに影響アリ。
やってる処理によっては挙動が変わるかもなので要注意。
フリー開発者。
Webサービス・スマホアプリ・ゲームなど作ってます。
新しいもの好き。
アイデアひねり出す人。
【当ブログ以外の活動】
・Qiita
・Follow @Ijoru