ios 8 addSubview导致背景黑屏

时间:2014-10-07 07:35:12

标签: ios objective-c ios8 addsubview

这是一个非常奇怪的行为,我无法弄清楚出了什么问题。在iOS7中,下面的代码按预期工作,但在iOS 8中,它有一种奇怪的行为。

    UIView *mainPopupView = [[UIView alloc] initWithFrame:CGRectMake(10, ([UIScreen mainScreen].bounds.size.height-300)/2-50+20, 300, 380)];
    mainPopupView.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:mainPopupView];

在iOS7中,这些代码将白色mainPopupView添加到当前视图控制器,一切正常。但是在iOS8中,在呈现mainPopupView之后,在mainPopupView后面出现黑屏(如带有黑色blackgroundColor的UIView)。 IMO对addSubview:方法有一些改变,我尝试在Google上进行各种搜索但没有结果。有人请向我解释为什么会发生这种情况以及如何解决它?

提前致谢。

1 个答案:

答案 0 :(得分:0)

尝试将PopupViewController实例的modalPresentationStyle设置为UIModalPresentationCustom,然后再以模态方式呈现。

如果您想知道为什么会发生这种情况,当您呈现UIViewController时,在转换动画结束后,先前的视图控制器将从窗口层次结构中删除,因为它未显示。当您将模式演示文稿样式设置为自定义时,您告诉系统不要删除正在呈现的视图控制器。我不知道它为什么在iOS8之前工作。