2010-10-04 74 views

回答

27

您可以直接將新視圖附加到窗口。

[[[UIApplication sharedApplication] keyWindow] addSubview:myNewView]; 
+1

我有這個解決方案的問題在於,覆蓋出現顛倒,和不旋轉。有沒有人知道這個問題的解決辦法? – elsurudo 2011-07-09 19:08:41

+0

方向僅傳遞給添加到窗口的第一個視圖控制器。如果你只添加一個視圖(沒有控制器),你必須先設置狀態欄的旋轉(請參閱這裏的答案:http://stackoverflow.com/questions/4436530/launching-app-in-landscape-orientation-原因旋轉啓動) – 2011-07-09 19:20:34

12

通過的Henrik P. Hessel的是好的,但有一個問題與該溶液中的上述溶液中。該問題已在elsurudo提及的答案下方提到。

我對這個解決方案的問題是,疊加出現 顛倒,不旋轉。

我面臨同樣的問題,我嘗試不同的東西,我得到了一個解決方案,以消除這一問題。

解決方案很簡單。您可以將myNewView添加到UITabBarController的視圖。

[self.tabBarController.view addSubview:myNewView]; 

希望對未來的訪問者有用。

2
UIView *modal = [[UIView alloc] initWithFrame:self.view.window.frame]; 
[self.view.window addSubview:modal]; 

這可能與上面提到的[[UIApplication sharedApplication] keyWindow]相同。但我喜歡通過當前視圖來引用它。

0

我真的很喜歡什麼大通羅伯特寫到這裏,所以我想提供斯威夫特3版本,以及:

if let window = view.window { 
     let subView = UIView(frame: window.frame) 
     window.addSubview(subView) 
    } 

我加入的條件一樣,所以你不會崩潰,如果沒有窗戶。

2

rdelmar's answer to another question的啓發,我建議把你的UITabBarController放在容器中查看其他ViewController。然後將您的hud添加到ViewController視圖。

screenshot for answer

+0

當你引用他人的答案時,你需要提及他們*按名稱*。我已經編輯你的答案,以符合這一點。有關更多信息,請參閱我們的[參考指南](https://stackoverflow.com/help/referencing)。 – 2017-09-30 13:07:34