2010-09-01 50 views
0

我有一個具有登錄畫面和啓動畫面的應用程序。我希望這些屏幕能夠一個接一個顯示出來,因此我已經將它們作爲子視圖添加到應用程序委託的窗口屬性中。將啓動畫面子視圖添加到UIwindow的問題

​​3210

問題是,添加的每個後續子視圖似乎都以奇怪的方式出現(nib文件的方向不服從)。我知道我的筆尖文件沒有錯,因爲如果我只包含一個視圖,無論它是哪個視圖,它都顯示正確。此外,如果我將視圖作爲子視圖添加到主視圖控制器的視圖(而不是應用程序委託)視圖,我沒有得到這個問題。但是,屏幕底部有20像素的空白,因爲我猜UIWindow帳戶是狀態欄,普通的UIView沒有。

有沒有人有任何想法可能是什麼問題? UIWindow是否做了特別的事情?我不應該添加幾個子視圖到UIWindow?如果有人有關於如何做啓動屏幕的提示,那將非常感激。

回答

1

我建議你在中間使用一個UIView ...

UIView view = [[UIView alloc] init]; 
[view addSubview:mainViewController.view]; 
[view addSubview:loginViewController.view]; 
[view addSubview:splashScreenViewController.view]; 
[window addSubview:view]; 
[view release]; 

後,如果你有什麼動畫作爲啓動畫面,看看我的文章之一: how to open a new uiview like a popup?

+0

我想這是最接近我正在尋找,但這仍然意味着我必須將其添加到窗口的子視圖,而不是視圖是窗口本身的子視圖。我仍然困惑於爲什麼當我嘗試將子視圖附加到它時,爲什麼UIWindow會以一種奇怪的方式表現出來。感謝所有的幫助。 – Ying 2010-09-05 15:14:03

+0

UiWindow並不意味着要處理多個子視圖...當我開始爲iPhone編碼時,我嘗試過它,它從來沒有給我適當的結果。 – TheSquad 2010-09-09 16:11:42

0

一次只能有1個視圖控制器。

0

您應該使用-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController委託函數來檢查哪個選項卡被點擊。如果它是你的第二個視圖(如果只有2個選項卡,它應該是),然後調用splashscreencontroller中的自定義方法彈出模態。如果該初始屏幕只顯示一次,請確保後來設置一個標誌以確保它不會再次彈出。

TabBarController在顯示它們之前加載所有的視圖,所以用戶在標籤之間切換時沒有滯後。