全屏UIView不会为其外观设置动画

时间:2011-12-29 23:22:43

标签: iphone objective-c ios cocoa-touch uiview

我需要一些基本过渡工作的帮助。我想我从概念上不理解这一点。

我加载了一个主视图,它在viewDidLoad中加载了“登录屏幕”。 “登录屏幕”是一个自定义xib +自定义视图控制器。 它按以下方式加载:

ISSplashScreenViewController* splashScreenController = [[ISSplashScreenViewController alloc] initWithNibName:@"ISSplashScreen" bundle:nil];
[UIView beginAnimations:nil context:nil];

[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:splashScreenController.view cache:YES];
[UIView setAnimationDuration: 1.5];

[splashScreenController viewWillAppear:YES];
[self.view addSubview:splashScreenController.view];
[splashScreenController viewDidAppear:YES];

[UIView commitAnimations];

我只能看到状态栏动画(我认为这是因为它隐藏在主窗口中,但我在登录屏幕的viewDidLoad中调用它。)

登录屏幕的正文“刚出现”。

我想知道是否有人可以解释为什么这不起作用,或许可以建议我能做些什么才能使它发挥作用。我想我必须从应用程序的子视图中删除主视图,然后在视图中加载日志。

我也试过这个,但它不起作用。主视图就在那里。

[splashScreenController viewWillAppear:YES];
[self.view.superview addSubview:splashScreenController.view];
[self.view.superview bringSubviewToFront:splashScreenController.view];
[self.view removeFromSuperview];
[splashScreenController viewDidAppear:YES];

非常感谢任何帮助,

由于

1 个答案:

答案 0 :(得分:0)

尝试使用-setAnimationTransition:forView:cache:而不是启动画面控制器的视图调用self.view