2010-02-24 30 views
1

我正在使用我的应用程序委托来替换视图。首先我删除当前视图,然后添加新视图,然后运行一个石英动画。IPHONE:在App Delegate中删除/添加子视图后,方向更改失败

无论我首先加载什么视图,方向变化都按预期发生。只要我开始向应用程序委托中的窗口添加新视图(删除旧视图),方向更改不再发生。假设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(@ “子视图计数=%d”,[[窗口子视图]计]); //始终为1

我在didRotateFromInterfaceOrientation使用的NSLog试图和这个功能明显时的取向发生变化时,才会调用。

我的应用程序代理窗口始终只有一个子视图,所以我输了!

回答

1

OK,所以我想通了,该怎么办...我创建了一个名为的UIViewController和SwapViewController加入我的其他观点,即。

我以为这不起作用,当我第一次尝试,因为我直接前进,并以编程方式添加UIView。但我想,鉴于UIViewController具有方向功能,需要一个视图控制器。

所以,让一个交换视图控制器和子视图添加到!

相关问题