UIWindow addSubview在ios 9中不起作用

时间:2015-10-01 10:48:39

标签: ios xcode ios9 uiwindow

以下代码在ios 8中正常工作,但在ios 9中我得到的是没有内容的白页。

MRForceUpdateView * mForceUpdateView = [[[NSBundle mainBundle] loadNibNamed:@"MRForceUpdateView" owner:self options:nil] objectAtIndex:0];

mForceUpdateView.frame = self.view.frame;

UIWindow * window = [[[UIApplication sharedApplication] delegate] window];

[window addSubview:mForceUpdateView];

请建议在应用级别添加自定义视图的方法。

提前感谢。

5 个答案:

答案 0 :(得分:4)

取消选中"使用大小类"选项然后再返回并重新检查它再次解决了这个问题。

  • 在项目导航器中,选择一个storyboard或xib文件。
  • 文件的内容在Interface Builder中打开。
  • 选择视图>公用事业>显示文件检查器。
  • 在“界面生成器文档”部分中,取消选中"使用大小类"复选框。
  • 离开菜单。回来打勾 "使用大小类"复选框。

答案 1 :(得分:3)

带有大小类的解决方案对我来说很奇怪,因为我现在没有遇到任何问题,只需在iOS 9的窗口中添加子视图。

此外,我想指出,当设置rootViewController时 - 窗口层次结构中的所有现有视图都将被删除。

来自UIWindow文档:

  

根视图控制器提供窗口的内容视图。将视图控制器分配给此属性(以编程方式或使用Interface Builder)将视图控制器的视图安装为窗口的内容视图。如果窗口具有现有视图层次结构,则在安装新视图之前将删除旧视图。

因此,您必须确保在设置rootViewController后将视图添加到窗口层次结构中。

例如,当加载第一个控制器时 - 您只能延迟加载该视图一次。

答案 2 :(得分:1)

尝试使用[window.rootViewController.view addSubview: view];

答案 3 :(得分:0)

我遇到了同样的问题&通过简单地退出/强制退出Xcode&模拟器( Cmd + 选项 + Esc )&然后重启&清洁( Cmd + Shift + k )。有时Xcode行为不端,我只能希望我早些时候试过这个来节省很多时间。

答案 4 :(得分:-1)

尝试

view.alpha = 0

ViewController中的

和viewDidLoad func

希望有所帮助