3

follを使用してView Controllerを提示しています。コード:

VC_B * b = [[VC_B alloc] init...];
[self presentViewController:b animated:YES completion:nil];

ビューコントローラーの外観をアニメーション化しようとしています。着信 VC は、現在表示されている VC を覆っている上部からスライドダウンする必要があります。このソリューションに従うと、1 つの問題で機能します。着信 VC が画面に表示される前に、現在の VC が消えてしまいます。これを解決する方法はありますか?おそらく、この効果を達成するための代替ソリューションがあります。

4

2 に答える 2

0

以下のコードを試してください。NewViewController を表示したいポイントから以下のメソッドを呼び出すだけです。必要なことは、NewViewcOntroller の View Frame の OriginY を変更することだけです。

-(void)displayNewVC
 {

 YourNewViewController *newVC = [[YourNewViewController alloc] init];

CGFloat originY = -450;//set originY as you want to display newViewController from the Top to bottom with animation
//initially set originY out of the Frame of CurrentViewcontroller
newVC.view.frame = CGRectMake(orginX, originY, newVC.view.frame.size.width, newVC.view.frame.size.height);

/*Display View With Animation*/
 originY = 300;
[UIView animateWithDuration:.3 animations:^{
     //set new originY as you want.
    newVC.view.frame = CGRectMake(orginX, originY, newVC.view.frame.size.width,  newVC.view.frame.size.height);
    
 } completion:NULL];

 [currentViewController.view addSubview:newVC.view];

 }
于 2013-05-04T18:57:01.347 に答える