提供视图控制器之间的转换

时间:2009-11-14 08:38:20

标签: iphone

我是iphone应用程序开发的新手。 我有一个mainmenu视图控制器,它有一个登录按钮。 一旦我点击登录按钮,我会通过调用

显示下一个登录视图控制器
LoginController *lc2=[[LoginController alloc] initWithNibName:@"LoginController" bundle:nil];

UINavigationController *navigationController = [[UINavigationController alloc]initWithRootViewController:lc2];
[self presentModalViewController:navigationController animated:YES];

但是这个视图似乎来自屏幕的右侧,当我从一个视图控制器导航到另一个视图控制器时,我想提供像卷曲或翻转这样的效果。 请帮我提供代码以提供此效果

3 个答案:

答案 0 :(得分:1)

从Apple的SDK中查看Metronome示例。它有点太多的代码可以在这里发布,所以我想指出你的例子。 基本思想是使用父视图控制器来处理两个或多个子视图控制器之间的转换。这涉及建立一个协议,以便平滑地允许子视图控制器通知根视图控制器有关转换的信息。有点模糊,我知道 - 所以请跳到示例代码中。

答案 1 :(得分:0)

也许是这样的,将动画代码与模态视图控制器的演示代码分开:

LoginController *lc2=[[LoginController alloc] initWithNibName:@"LoginController" bundle:nil];

UINavigationController *navigationController = 
      [[UINavigationController alloc]initWithRootViewController:lc2];

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.75];
[UIView setAnimationDelegate:self];
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:navigationController.view cache:YES];

[self presentModalViewController:navigationController animated: NO];
[UIView commitAnimations];

答案 2 :(得分:0)

我非常赞同luvieere,除了我认为

中指定的视图
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:navigationController.view cache:YES];

必须是容器视图,如果要添加或删除子视图,我不确定navigationController.view是否是容器视图。我会尝试不同的组合,包括self.view,self.view.superview(取决于“presentModalViewController”的行为)。