1

我将 ViewControllers 用于不同的视图,这就是我目前从页面切换到页面的方式:

- (IBAction)switchToSecondPage:(id)sender 
{
    SecondPage * secondPage = [[SecondPage alloc] initWithNibName:nil bundle:nil];
    [self presentViewController: secondPage animated:YES completion:NULL];
}

这是从屏幕底部出现的典型新视图。我可以用它来改变过渡风格,但我只有几个选择可供选择,而且没有一个是好的。

secondPage.modalTransitionStyle = UIModalTransitionStylePartialCurl;

我正在寻找与您获得的原始转换相似的转换(页面从底部向上滑动)。所以我想要“从顶部向下滑动”和“从左/右滑动”。有什么办法可以做到这一点。我看到各种各样的应用程序都在这样做,但我没有成功找到任何东西。

4

1 回答 1

0

一种方法是,

  [self.view addSubview:secondPage.view];
  secondPage.view.frame = frameOutSideCurrentView;//Frame is set as outside the screen
  [UIView animateWithDuration:1.0f
                     animations:^{
                         //actual frame needed with an animation.
                         secondPage.view.frame = originalFrame;
                     }
                     completion:^(BOOL finished) { 
                        //if you need to anything specific once the animation is completed.
                     }];

另一种方法是使用 thisTransitionController是有助于做到这一点的自定义实现。如果您遇到上述代码的问题,请使用此实现中的类别方法。有一些方法,例如,

- (id)initWithViewController:(UIViewController *)viewController;
- (void)transitionToViewController:(UIViewController *)viewController
                     withOptions:(UIViewAnimationOptions)options;

可以用来实现这一点。

于 2012-11-07T23:23:01.853 回答