这是非常奇怪的行为,我无法弄清楚出了什么问题。在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后面出现黑屏(如带有BlackblackColor的UIView)。 IMO关于addSubview:方法有一些更改,我尝试在Google上进行各种搜索,但没有结果。有人请向我解释为什么会发生这种情况以及如何解决?
提前致谢。
最佳答案
尝试将您的PopupViewController实例的modalPresentationStyle设置为UIModalPresentationCustom,然后以模态展示它。
如果您想知道为什么会发生这种情况,请在呈现UIViewController时,在过渡动画完成后,由于未显示以前的视图控制器,因此将其从窗口层次结构中删除。将模式表示样式设置为custom时,就是在告诉系统不要删除正在显示的视图控制器。我不知道为什么它在iOS8之前可以运行。
关于ios - iOS 8 addSubview导致背景黑屏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26230836/