0

我正在使用 Push 导航到不同的页面。如您所知,它总是从右向左移动。我希望它像这样工作:

1 - 当我单击当前页面左侧的按钮时,它从左到右。

2 - 当我单击当前页面右侧的按钮时,它从右到左。

3 - 当我点击加载当前页面的按钮时,它归结为向上。(如模态)

这是我通过实现UIStoryboardSegue和创建自定义 Segue 所尝试的:

- (void) perform {

    UIViewController *src = (UIViewController *) self.sourceViewController;
    [src.navigationController popViewControllerAnimated:YES];
}

或者:

- (void) perform {

    UIViewController *src = (UIViewController *) self.sourceViewController;
    [UIView transitionWithView:src.navigationController.view duration:0.5
                       options:UIViewAnimationOptionTransitionFlipFromBottom
                    animations:^{
                        [src.navigationController popToViewController:[src.navigationController.viewControllers objectAtIndex:0] animated:NO];;
                    }
                    completion:NULL];
}

但他们并没有以我想要的方式工作。我希望他们像 Push Segue 一样工作(我想要 viewDidLoad,......再次被调用)你能给我一些帮助吗?(请在您的答案中分享一些代码)

4

2 回答 2

0

这是我需要做的:

-(void)perform {  
   UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
   UIViewController *destinationController = (UIViewController*)[self destinationViewController];                    

   CATransition* transition = [CATransition animation];
   transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
   transition.type = kCATransitionPush;
   transition.subtype = kCATransitionFromLeft; 
   [sourceViewController.navigationController.view.layer addAnimation:transition forKey:kCATransition];
   [sourceViewController.navigationController pushViewController:destinationController animated:NO];    
}

干杯!

于 2012-10-18T19:48:17.147 回答
0

IIViewDeckController是你想要的东西..

看这个演示..

IIViewDeckController 开源

来自 scoop.it 的 IIViewDeck

于 2012-10-18T10:13:07.000 回答