当使用UITabBarController时,在整个屏幕上覆盖一个视图?
我想在UITabBarController设置的整个屏幕上覆盖HUD风格的透明图形。按钮是在第一个标签的屏幕(FirstViewController)中,覆盖层也应该覆盖标签......这可能吗?当使用UITabBarController时,在整个屏幕上覆盖一个视图?
您可以直接将新视图附加到窗口。
[[[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]
相同。但我喜欢通过当前视图来引用它。
我真的很喜欢什么大通罗伯特写到这里,所以我想提供斯威夫特3版本,以及:
if let window = view.window {
let subView = UIView(frame: window.frame)
window.addSubview(subView)
}
我加入的条件一样,所以你不会崩溃,如果没有窗户。
受rdelmar's answer to another question的启发,我建议把你的UITabBarController放在容器中查看其他ViewController
。然后将您的hud添加到ViewController
视图。
当你引用他人的答案时,你需要提及他们*按名称*。我已经编辑你的答案,以符合这一点。有关更多信息,请参阅我们的[参考指南](https://stackoverflow.com/help/referencing)。 – 2017-09-30 13:07:34
我有这个解决方案的问题在于,覆盖出现颠倒,和不旋转。有没有人知道这个问题的解决办法? – elsurudo 2011-07-09 19:08:41
方向仅传递给添加到窗口的第一个视图控制器。如果你只添加一个视图(没有控制器),你必须先设置状态栏的旋转(请参阅这里的答案:http://stackoverflow.com/questions/4436530/launching-app-in-landscape-orientation-原因旋转启动) – 2011-07-09 19:20:34