【发布时间】:2012-05-02 14:48:57
【问题描述】:
我创建了一个支持旋转的简单 iPad 应用程序。它有两个视图控制器。 First View Controller 自动加载为rootViewController 的AppDelegate。它上面有一个按钮,单击该按钮会将AppDelegate 的rootViewController 更改为Second View Controller。 Second View Controller 上有一个按钮,可将 rootViewController 设置回 First View Controller。这项工作在人像模式下完美。但是当我将模拟器旋转到横向模式,并单击First View Controller 上的按钮以加载Second View Controller 时,它首先显示Second View 根据设备(未旋转),然后在完成动画后将显示旋转到正常(横向)。出了什么问题?
AppDelegate中设置View Controllers的方法如下:
(void)loadSecondView
{
SecondView *secondViewController = [[SecondView alloc] initWithNibName:@"SecondView" bundle:nil];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.75];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.window cache:YES ];
self.window.rootViewController = secondViewController;
[UIView commitAnimations];
}
(void) removeSecondView
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.75];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.window cache:YES ];
self.window.rootViewController = self.firstViewController;
[UIView commitAnimations];
}
【问题讨论】:
标签: objective-c ios ipad uiviewcontroller