0

ユーザーがボタンをクリックしたときにビューをアニメーション化する必要があります。私はアニメーション化のために次のコードを使用しています

アプリ デリゲート

ViewController2 *vc2_controller = [[ViewController2 alloc]init];

    UINavigationController *baseViewController = [[UINavigationController alloc]initWithRootViewController:vc2_controller];
    [self.window addSubview:baseViewController.view];
     self.window.rootViewController = vc2_controller;



    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];  

    [self.window addSubview:navigationController.view];


    self.viewController = [[vc1controller alloc]initWithNibName:nil bundle:nil];

//ViewController1.m -- これは機能しています

[self.navigationController pushSlideViewController:self.navigationController];

カテゴリ //Category 内に関数定義を作成しました

- (void)pushSlideViewController:(UIViewController *)viewController
{
   // NSLog(@"In Navigation Controller");

    //[UIView transitionWithView:viewController.view duration:0.5 options:UIViewAnimationOptionTransitionFlipFromLeft animations:nil completion:nil];
    CGRect screensize = [[UIScreen mainScreen]bounds];

    [UIView animateWithDuration:0.5 animations:^{

        NSLog(@"In View ANimatin");
        CGRect current_rect =  viewController.view.frame;
        viewController.view.frame = current_rect;
        current_rect.origin.x = screensize.size.width-50;
        viewController.view.frame = current_rect;

    }];

}

今、ViewController2.m から ViewController1.m を呼び出しています -- アニメーションが機能しません

ViewController1 *view_control = [[ViewController1 alloc]init];

[self.navigationController popSlideViewController:view_control];

//Category
-(void)popSlideViewController:(UIViewController *)viewController
{
    CGRect screensize = [[UIScreen mainScreen]bounds];
    //NSLog(@"In Pop");
    [UIView animateWithDuration:0.5 animations:^{

        //View is not coming to original position.
        CGRect current_rect =  viewController.view.frame;
        NSLog(@"In View ANimatin %f",current_rect.origin.x);
        viewController.view.frame = current_rect;
        current_rect.origin.x = 0.0;
        viewController.view.frame = current_rect;

    }]; 
}

注:私はios5を使用していません:-)

ありがとう、

4

1 に答える 1