ストーリーボードを使用して実現したい場合は、非常に簡単です。
サンプルコードを添付します
1 - ストーリーボードでカスタム PauseViewController を作成します。フルスクリーン ビュー、黒色、アルファ 0、一時停止コントロールを含むサブビューを使用します。対応する .h および .m ファイルを作成します。
2 - コントロール (UIButtons) を追加してリンクします。このような却下メソッドを追加します。このメソッドは、階層からビューを削除し、非表示時にアルファを変更して非表示にします。
- (IBAction)dismiss:(id)sender {
[UIView animateWithDuration:0.3f animations:^{
self.view.alpha = 0.0f;
} completion:^(BOOL finished) {
[self.view removeFromSuperview];
[self removeFromParentViewController];
}];
}
3 - UIStoryboardSegue をサブクラス化し、独自のセグエ クラスを作成します。次に、このようなもので perform メソッドをオーバーライドします。これは単純に 2 つのコントローラー (ソースと宛先) を取り、宛先ビューをアニメーション付きのソース ビューの上に置きます。
-(void)perform{
UIViewController *dst = [self destinationViewController];
UIViewController *src = [self sourceViewController];
// add the view to the hierarchy and bring to front
[src addChildViewController:dst];
[src.view addSubview:dst.view];
[src.view bringSubviewToFront:dst.view];
// set the view frame
CGRect frame;
frame.size.height = src.view.frame.size.height;
frame.size.width = src.view.frame.size.width;
frame.origin.x = src.view.bounds.origin.x;
frame.origin.y = src.view.bounds.origin.y;
dst.view.frame = frame;
[UIView animateWithDuration:0.3f animations:^{
dst.view.alpha = 0.5f;
}];
}
4 - セグエをリンクし、カスタムを選択して、カスタム セグエ クラス名を挿入します。
たぁぁぁぁぁ!
他の詳細が必要な場合は、サンプル コードを確認するか、コメントを追加してください。