目前的模态视图控制器给出了一个黑屏

Posted

技术标签:

【中文标题】目前的模态视图控制器给出了一个黑屏【英文标题】:presentModalViewController gives a black screen 【发布时间】:2012-05-26 09:51:23 【问题描述】:

在警报视图方法中,我实现了以下(相当标准的)代码段来弹出模式视图:

    else if (buttonIndex == 1) 
        EmergencyPlanViewController *emergencyPlanView = [[[EmergencyPlanViewController alloc] init] autorelease];
        [emergencyPlanView setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
        [self presentModalViewController:emergencyPlanView animated:YES];
    

不知何故,它给了我一个黑屏。我找不到这里有什么问题。 我在 MainStoryBoard 中创建了窗口,并将 IB 中的 viewcontroller 类自定义为 EmergencyPlanViewController。

emergencyPlanView 的 viewDidLoad 方法被触发,但是看起来视图没有加载。有人知道这里出了什么问题吗?

编辑: 需要明确的是,我没有在我的项目中使用单独的 xib 文件。我只使用故事板

【问题讨论】:

【参考方案1】:

xib 文件中,您的UIView 是否设置为文件所有者的视图。这大概就是问题所在。此外,如果您只应用init,则会加载具有相同名称的EmergencyPlanViewControllerinterface 构建器文件: EmergencyPlanViewController.xib 因此,请确保在这种情况下: EmergencyPlanViewController 笔尖确实是:EmergencyPlanViewController.xib 或者你写而不是initinitWithNibName://whatever nib name here

【讨论】:

好的,但我不使用任何 xib 文件,而是在我的故事板上创建了一个单独的视图控制器。是不是应该跟这个有关? 在这种情况下它与你的故事板有关【参考方案2】:

通过在 Interface Builder 中为视图设置背景颜色,我设法解决了在呈现模态视图控制器时出现的黑屏问题。我注意到默认情况下,视图的背景颜色设置为黑色/白色(见附图),尽管它显示为白色。我不知道这到底是什么意思,也不知道它是如何导致黑屏的,但是设置单一颜色或纹理可以解决它。 PS:我在从 ios SDK 5 迁移到 6 时遇到过这个问题。

ios6

【讨论】:

【参考方案3】:

试试这个:-

    EmergencyPlanViewController *emergencyPlanView=[[EmergencyPlanViewController alloc] initWithNibName:@"EmergencyPlanViewController" bundle:nil];
    emergencyPlanView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

    [self.navigationController presentModalViewController:emergencyPlanView animated:YES];

【讨论】:

以上是关于目前的模态视图控制器给出了一个黑屏的主要内容,如果未能解决你的问题,请参考以下文章

ios标签栏点击显示模态视图黑屏

关闭模态视图控制器会导致黑屏

黑屏正在显示的视图控制器下方

从模态视图呈现视图控制器给出错误

如何在 iOS 中显示小型模态视图控制器?

iOS - 目前的模态视图控制器会导致一些动画伪影(iPhone)