Iphone UIView显示为黑屏,是否修复?

Iphone UIView显示为黑屏,是否修复?,iphone,ios,xcode,cocoa-touch,cocoa,Iphone,Ios,Xcode,Cocoa Touch,Cocoa,我调用一个视图来显示以下代码: #import "infoView.h" ... infoView *viewInfo = [[infoView alloc] initWithNibName:nil bundle:nil]; viewInfo.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentModalViewController:viewInfo animated:YES]; 但当它在运行时显示

我调用一个视图来显示以下代码:

#import "infoView.h"
...
infoView *viewInfo = [[infoView alloc] initWithNibName:nil bundle:nil];
viewInfo.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:viewInfo animated:YES];
但当它在运行时显示时,加载的视图变成黑色。 目前我使用的是故事板,但我需要使用这段代码,因为在我的例子中,它效率更高,因为我处理的是多个视图

如果我通过情节串连板将其连接起来,效果会很好

我应该看到2个标签,1个UITextView和2个UIButton

该视图是使用StoryBoard创建的,当创建视图的.m和.h文件没有为其添加.xib时。它还通过故事板中的自定义类部分链接


谢谢,希望有人能帮忙

嘲笑那些花时间和精力帮助你的人通常是很糟糕的

命名很重要,它使您的代码更易于使用,并允许其他人使用它。不遵循您使用的语言的约定是危险的,这意味着您的代码与其他开发人员不兼容,因为它们的解释不同

如果查看文档站点,您将在initWithNibName:bundle:method描述中看到此注释

如果您的应用程序使用情节提要定义视图控制器及其关联视图,则您的应用程序不会直接初始化该类的对象。相反,视图控制器要么由情节提要实例化,要么在触发segue时由iOS自动实例化,要么在应用程序调用情节提要对象的InstanceEviewController WithiIdentifier:方法时以编程方式实例化。当从故事板实例化视图控制器时,iOS通过调用其initWithCoder:方法来初始化新的视图控制器。iOS会自动将nibName属性设置为存储在情节提要中的nib文件

因此,您实例化控制器的方式是错误的,故事板应该实例化它。就是这样做的

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle bundleForClass:[self class]]];
InfoViewController *infoViewController = [storyboard instantiateViewControllerWithIdentifier:@"InfoViewController"];
infoViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self infoViewController animated:YES];
旁注
infoView对这个类来说是个坏名字,不仅因为你一开始没有大写字母,还因为它完全是骗人的。任何阅读本文的人都会认为InfoView是UIView的一个子类,而不是UIViewController。

嘲笑那些花时间和精力帮助你的人通常是非常糟糕的

命名很重要,它使您的代码更易于使用,并允许其他人使用它。不遵循您使用的语言的约定是危险的,这意味着您的代码与其他开发人员不兼容,因为它们的解释不同

如果查看文档站点,您将在initWithNibName:bundle:method描述中看到此注释

如果您的应用程序使用情节提要定义视图控制器及其关联视图,则您的应用程序不会直接初始化该类的对象。相反,视图控制器要么由情节提要实例化,要么在触发segue时由iOS自动实例化,要么在应用程序调用情节提要对象的InstanceEviewController WithiIdentifier:方法时以编程方式实例化。当从故事板实例化视图控制器时,iOS通过调用其initWithCoder:方法来初始化新的视图控制器。iOS会自动将nibName属性设置为存储在情节提要中的nib文件

因此,您实例化控制器的方式是错误的,故事板应该实例化它。就是这样做的

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle bundleForClass:[self class]]];
InfoViewController *infoViewController = [storyboard instantiateViewControllerWithIdentifier:@"InfoViewController"];
infoViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self infoViewController animated:YES];
旁注
infoView对这个类来说是个坏名字,不仅因为你一开始没有大写字母,还因为它完全是骗人的。任何阅读本文的人都会认为InfoView是UIView的一个子类,而不是UIViewController。

您还没有告诉我们您希望看到的是什么而不是黑色。你应该让我们更多地了解infoView类是如何编写的。另外,请以大写字母开头命名类。”infoView看起来像一个变量/属性,而不是一个类。@Sirkayan嘲笑试图帮助你的人是件好事,很好…@Sirkayan是的,大写字母实际上是matterOkay,对此表示抱歉。谢谢大家!你没有告诉我们你希望看到什么而不是黑色。你应该让我们更多地了解infoView类是如何编写的。另外,请以大写字母开头命名类。”infoView看起来像一个变量/属性,而不是一个类。@Sirkayan嘲笑试图帮助你的人是件好事,很好…@Sirkayan是的,大写字母实际上是matterOkay,对此表示抱歉。谢谢大家!很公平,谢谢你的提示和技巧!如果我表现得有点强,我会很糟糕。我现在明白了应该如何建立一个标准的命名系统。我是相当新的编码一般约3个月,并希望尽我所能做到最好。因此,再次感谢您的帮助和建议!很公平,谢谢你的提示和技巧!如果我表现得有点强,我会很糟糕。我现在明白了应该如何建立一个标准的命名系统。我是法 我刚开始编写代码大约3个月,我希望尽我所能做到最好。因此,再次感谢您的帮助和建议!