これはあなたが望む正確なコードではありませんが、あなたが望むアニメーションを行う方法を得ることができます
最初に、NO
ビューをプッシュおよびポップしながらアニメーションのパラメーターを渡す必要があり、このようなカスタムアニメーションを提供する必要があります
// Flash the screen white and fade it out to give UI feedback that a still image was taken
UIView *flashView = [[UIView alloc] initWithFrame:[[self videoPreviewView] frame]];
[flashView setBackgroundColor:[UIColor whiteColor]];
[[[self view] window] addSubview:flashView];
[UIView animateWithDuration:.4f
animations:^{
[flashView setAlpha:0.f];
}
completion:^(BOOL finished){
[flashView removeFromSuperview];
}
];
詳細な回答と適切な方法でのブロックの使用については、SO の他の質問に関するこの回答を参照してください。
その回答のコードの一部は次のとおりです
プッシュの場合:
MainView *nextView = [[MainView alloc] init];
[UIView animateWithDuration:0.75
animations:^{
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[super pushViewController:nextView animated:NO];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];
}];
ポップの場合:
[UIView animateWithDuration:0.75
animations:^{
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:transition forView:self.navigationController.view cache:NO];
}];
[self.navigationController popViewControllerAnimated:NO];
@ijordanに感謝
問題のその他のヒントはこちら
これは、ナビゲーション コントローラーのアニメーションのカテゴリを提供するため、これを使用して余分なコーディングを行う必要のない優れた例の 1 つです。