推视图控制器,黑屏

我正在推动一个新的视图控制器,并将一些数据传递给它。 当我运行应用程序,我可以按下button,并推到新的视图,但屏幕是完全黑色的。 任何帮助表示赞赏。

- (IBAction)button:(id)sender { NSString *firstField = self.field.text; NSString *secondField = self.field2.text; self.resultsArray = [[NSArray alloc] initWithObjects:firstField, secondField, nil]; NSUInteger randomResult = arc4random_uniform(self.resultsArray.count); self.label.text = [self.resultsArray objectAtIndex:randomResult]; ImagesViewController *ivc = [[ImagesViewController alloc] init]; ivc.label = self.label.text; [self.navigationController pushViewController:ivc animated:YES]; } 

当你使用一个故事板,并且你想在代码中推送一个视图控制器(而不是一个segue),你需要给控制器一个标识符,并像这样创build它:

  ImagesViewController *ivc = [self.storyboard instantiateViewControllerWithIdentifier:@"MyIdentifier"]; ivc.label = self.label.text; [self.navigationController pushViewController:ivc animated:YES]; 

您正在推送的视图控制器没有设置任何框架维度。build议始终为对象调用指定的init。 对于视图控制器,指定的init方法是

 - (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle 

如果你有一个xib分配它

 ImagesViewController *ivc = [[ImagesViewController alloc] initWithNibName:<your xib> bundle:[NSBundle mainbundle]; 

如果您使用的是自定义视图,请指定一个框架维度并将其添加为子视图

Xcode 7.3和Swift 2.2

在我的情况下,我在故事板做了一个改变,并使其成为TabBarController,并相应地将控制器的类从UIViewController更改为UITabBarController。 经过一些调整后,这个变化是不利的,我做了所有的变化,并得到了一个黑屏,然后因为我忘记了改变控制器的类。 我把它改回UIViewController,它又开始工作。

所以检查你是否犯了同样的错误。 黑屏是因为故事板上有一个类(UIView / UITabBar / UITableView控制器),但代码中不一样。

这也可能发生,如果你有某种不正确的连接在故事板的一个子视图到控制器的视图。 检查每个子视图中的参考出口是否正确。

我有一个很好的:

确保你正在实现正确的超级类,委托等。在viewController的顶部你试图呈现。 即

我根本没有使用/实现UINavigationController

 class TMDetailBlogViewController: UINavigationController { //code goes here } 

 class TMDetailBlogViewController: UIViewController { //code goes here } 

通常情况下,通过调用:

 initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 

在你的自定义UIViewController。

如果你不使用xib文件,那么你在做什么可能是好的。 您是否在ImagesViewController的构造函数中dynamic创buildUI元素?