2010-02-24 28 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具有方向功能,需要一個視圖控制器。

所以,讓一個交換視圖控制器和子視圖添加到!

相關問題