ビューコントローラーをナビゲーション スタックにプッシュするときに、次のようなことを試すことができます。
SecondViewController *VC2 = [[SecondViewController alloc]init];
VC2.nameSupplied = self.nameField.text;
CGPoint mycenter = VC2.view.center;
CGPoint navCenter = self.navigationController.navigationBar.center;
VC2.view.center = CGPointMake(mycenter.x , mycenter.y - VC2.view.frame.size.height);
self.navigationController.navigationBar.center = CGPointMake(navCenter.x, navCenter.y - self.navigationController.navigationBar.frame.size.height);
[self.navigationController pushViewController:VC2 animated:NO];
[UIView animateWithDuration:0.5
delay:0
options: UIViewAnimationCurveEaseOut
animations:^{
VC2.view.center = mycenter;
self.navigationController.navigationBar.center = navCenter;
}
completion:^(BOOL finished){
NSLog(@"Animation Done!");
}];
ただし、同じView Controllerで別のビュー(上から下に移動)を表示したい場合は、次のように UIView のtranformプロパティを使用できます。
self.secondView.transform = CGAffineTransformMakeTranslation(0, secondView.frame.size.height);