Изменение анимации от сдвига влево-вправо влево-вправо для кнопки назад! навигация - PullRequest
1 голос
/ 29 декабря 2010
-(IBAction) takeNextStep : (id) sender
{   
     SecondViewController *varSecondViewController =[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
}

как мне изменить его со скольжения по умолчанию слева направо (вперед) на право налево (назад), поскольку у меня есть пользовательская кнопка, таким образом, мне удалось запрограммировать свою пользовательскую кнопку, чтобы вернуться в корень,однако он скользит справа налево, вызывая замешательство пользователя

спасибо!

Ответы [ 2 ]

4 голосов
/ 31 мая 2012

Аналогично ответу Xen, скачайте пример кода здесь .

// get the view that's currently showing
UIView *currentView = self.view;
// get the the underlying UIWindow, or the view containing the current view
UIView *theWindow = [currentView superview];

UIView *newView = aTwoViewController.view; 

// remove the current view and replace with myView1
[currentView removeFromSuperview];
[theWindow addSubview:newView];

// set up an animation for the transition between the views
CATransition *animation = [CATransition animation];
[animation setDuration:0.5];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromRight];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];

[[theWindow layer] addAnimation:animation forKey:@"SwitchToView2"];
2 голосов
/ 31 декабря 2010

Вы можете использовать что-то вроде этого ...

(требуется )

- (void)switchTwoViews:(UIView *)view1 otherView:(UIView *)view2 direction:(int)directionRL{
    view2.bounds = CGRectMake(0, 0, 480, 320);
    visibleView = view2;
    // remove the current view and replace with view1
    [view1 removeFromSuperview];
    [currentOptionsView addSubview:view2];

    // set up an animation for the transition between the views
    CATransition *animation = [CATransition animation];
    [animation setDuration:0.5];
    [animation setType:kCATransitionPush];
    if (directionRL == 0) {
        [animation setSubtype:kCATransitionFromRight];
    } else {
        [animation setSubtype:kCATransitionFromLeft];
    }

    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];

    [[currentOptionsView layer] addAnimation:animation forKey:@"SwitchToView"];
}

Это пользовательская функция, которая перемещает вид справа налево (направление = 0) или наоборот (направление = 1).

Попробуй. Наслаждайтесь.

...