【发布时间】:2010-02-24 19:14:21
【问题描述】:
我正在使用我的应用程序委托来交换视图。首先删除当前视图,然后添加新视图,然后运行石英动画。
无论我首先加载什么视图,方向变化都会按预期发生。一旦我开始在应用程序委托中向窗口添加新视图(删除旧视图),方向变化就不再发生。假设 shouldAutorotateToInterfaceOrientation 在我所有的 UIViewControllers 中都存在 YES。
我取出了石英动画,但我仍然卡在这里:
-(void) showSongList {
[songVC.view removeFromSuperView];
navVC = [[NavigationViewController alloc] initWithNibName:0 bundle:0];
[window addSubView:navVC.view];
[songVC release];
songVC = nil;
}
切换视图工作正常。第一个视图总是响应并切换方向,然后我对添加视图的窗口所做的任何更改(总是删除前一个视图)都会减少方向更改。
如果我立即加载 navVC,它将旋转方向,但是当它远离按钮事件时,我会遇到我所描述的方向问题。
NSLog(@"subview count = %d", [[window subviews] count]); //总是1
我已经尝试在 didRotateFromInterfaceOrientation 中使用 NSLog 并且这个函数显然只在发生方向变化时被调用。
我的应用程序委托窗口总是只有一个子视图,所以我迷路了!
【问题讨论】:
标签: iphone interface ipad orientation rotation