在使用UITabBarController时覆盖整个屏幕的视图?

我想在UITabBarController设置的整个屏幕上覆盖一个HUD风格的透明graphics。 button是在第一个标签的屏幕(FirstViewController),覆盖也应该包括标签…这可能吗?

你可以直接把你的新视图附加到你的窗口。

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

Henrik P. Hessel的上述解决scheme很好,但是这个解决scheme存在一个问题。 elsurudo已经在回答下面的评论中提到了这个问题。

我用这个解决scheme的问题是,叠加出现颠倒,不旋转。

我面临同样的问题,我尝试了不同的东西,我得到了一个解决scheme来消除这个问题。

解决scheme很简单。 你可以添加myNewViewUITabBarController的视图。

 [self.tabBarController.view addSubview:myNewView]; 

希望对未来的访问者有用。

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

这可能与上面提到的[[UIApplication sharedApplication] keyWindow]相同。 但我喜欢通过当前视图来引用它。

我真的很喜欢Chase Robert在这里写的,所以我想也提供了Swift 3.版本:

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

我也添加了这个条件,所以如果没有窗户,你就不会崩溃。

受到rdelmar对另一个问题的回答的启发,我build议把你的UITabBarController放在Container View的其他ViewController 。 然后将你的hud添加到ViewController视图。

截图为答案