簡體   English   中英

使用UITabBarController時覆蓋整個屏幕的視圖?

[英]Overlay a view over whole screen, when using UITabBarController?

我想在UITabBarController設置中在整個屏幕上疊加HUD風格的透明圖形。 執行此操作的按鈕位於第一個選項卡的屏幕(FirstViewController)中,覆蓋圖也應覆蓋選項卡......這可能嗎?

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

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

Henrik P. Hessel的上述解決方案很好,但該解決方案存在一個問題。 elsurudo在答案下面的評論中已經提到了這個問題。

我對此解決方案的問題是疊加層是顛倒的,並且不會旋轉。

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

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

[self.tabBarController.view addSubview:myNewView];

希望,它對未來的訪客有用。

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

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

rdelmar對另一個問題的回答的啟發,我建議將你的UITabBarController放在Container View中使用其他ViewController 然后將您的hud添加到ViewController視圖中。

截圖回答

我真的很喜歡Chase Robert在這里寫的東西,所以我想提供Swift 3.版本:

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

我也添加了條件,所以如果沒有窗戶你就不會崩潰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM