2013-03-19 73 views
0

我想創建一個加載視圖頁面,將其放在屏幕上的所有視圖之上。我用下面的代碼來獲取RootViewController的的觀點:在iOS中查找頂部視圖

UIApplication.sharedApplication.keyWindow.rootViewController.view 

創建我的視圖頁面,並將其添加爲一個子視圖RootViewController的的觀點。我的問題是,當我這樣做,如果rootViewController更改,我的加載頁面將落後於新的viewController的視圖。例如,我在發送http請求時調用showLoading函數。當響應回來時,它會更改viewController,並加載它。有沒有什麼辦法可以將我的加載放在頂部,與後臺發生的事情無關?

回答

3

您可以根據需要創建儘可能多的UIWindows。如果你真的想確保一個視圖總是是最好的,那麼最好創建第二個UIWindow並將它添加到你的層次結構中。然後,無論發生在其他UIWindow中的情況如何,您的負載指標都將保持在最高水平。

UIWindow *secondWindow = [[UIWindow alloc] initWithFrame:[[[UIApplication sharedApplication] keyWindow] frame]]; 
[secondWindow setWindowLevel:UIWindowLevelStatusBar]; 
[secondWindow makeKeyAndVisible]; 

UIViewController *aNewViewController = [[UIViewController alloc] initWithFrame:secondWindow.bounds]; 
[secondWindow setRootViewController:aNewViewController]; 
+0

那是一個好主意。但我怎樣才能將UIWindow添加到層次結構? – AliBZ 2013-03-19 20:24:53

+0

參見http://stackoverflow.com/questions/8232398/advantages-problems-examples-of-adding-another-uiwindow-to-an-ios-app – 2013-03-19 20:28:41

+0

只需創建一個makeKeyAndVisible – 2013-03-19 20:29:20