2010-10-04 71 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