pushViewController:viewController animation:YESメソッドに似たメソッドをナビゲーション コントローラーに作成する必要がありますが、左から右への遷移を行いながら、ビュー コントローラーのフレームの上部に 80px を追加する必要があります。ただし、以下のメソッドは次のエラーをスローしています。
親ビュー コントローラーは、-[UIViewController transitionFromViewController:toViewController:duration:options:animations:completion:]' の呼び出しでレガシー コンテインメントを使用しています。
- (void)transitionFrom:(UIViewController *)oldController To:(UIViewController *)newController
{
[self addChildViewController:newController];
//[self configureChild:newController];
[newController.view setFrame:CGRectMake(320, 80, oldController.view.frame.size.width, oldController.view.frame.size.height)];
[self transitionFromViewController:oldController
toViewController:newController
duration:0.5
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
[oldController.view setFrame:CGRectMake(-320, 80, oldController.view.frame.size.width, oldController.view.frame.size.height)];
[newController.view setFrame:CGRectMake(0, 80, newController.view.frame.size.width, newController.view.frame.size.height)];
}
completion:^(BOOL finished){
//[oldController willMoveToParentViewController:nil];
[oldController removeFromParentViewController];
[newController didMoveToParentViewController:self];
}];
}