在使用UITabBarController时覆盖整个屏幕的视图?
我想在UITabBarController设置的整个屏幕上覆盖一个HUD风格的透明graphics。 button是在第一个标签的屏幕(FirstViewController),覆盖也应该包括标签…这可能吗?
你可以直接把你的新视图附加到你的窗口。
[[[UIApplication sharedApplication] keyWindow] addSubview:myNewView];
Henrik P. Hessel的上述解决scheme很好,但是这个解决scheme存在一个问题。 elsurudo已经在回答下面的评论中提到了这个问题。
我用这个解决scheme的问题是,叠加出现颠倒,不旋转。
我面临同样的问题,我尝试了不同的东西,我得到了一个解决scheme来消除这个问题。
解决scheme很简单。 你可以添加myNewView
到UITabBarController
的视图。
[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
视图。