从屏幕右侧打开另一个视图控制器视图

时间:2010-12-21 11:41:41

标签: iphone uiview transition

我想从屏幕右侧打开一个viewcontroller。

那是在做

  

[self presentModalViewController:pvc animated:YES];

我希望另一个viewcontroller的视图看起来好像从屏幕右侧滑动而不是显示为来自屏幕底部:)

我怎样才能做到这一点。请帮助:)

2 个答案:

答案 0 :(得分:2)

您正在寻找的是UINavigationController。

在您的应用委托中,您将在applicationDidFinishLoading

中看到一行
[window addSubview:viewController.view];

将该行更改为:

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[window addSubview:navController.view];

现在可以代替[self presentModalViewController:pcv animated:YES];

[self.navigationController pushViewController:pcv animated:YES];

这是给出“从右侧滑入”动画的控件。 Plus允许您更好地控制应用程序中的视图堆栈和导航。它是控制应用中导航的最佳方式。

ps:navController现在会泄漏 - 在我的例子中它就像这样,所以你可以看到我在做什么。您需要将navController设置为app代理的.h中的iVar,以便在dealloc中释放它。如果您现在发布它,那么您将无法向其发送消息。

答案 1 :(得分:1)

查看UINavigationController - Class Reference。这使您可以组织将从侧面滑入的层次结构。或者你可以玩UIView animation blocks。找出最适合您应用的最新信息。如果你有几件事要从侧面推动,比如类别,请使用UINavigationController。如果您只是想要从侧面进入并离开的简单视图,您将需要使用UIView动画或其他动画方法。 UIView动画将如下所示:

[UIView beginAnimations:nil context:nil];
//code to move view on to screen
[UIView setAnimationDuration:0.5];
[UIView commitAnimations];