iPhone - 模拟器中的黑屏 - viewcontroller

时间:2012-06-07 17:54:07

标签: ios5 ios-simulator

我已经搜索了这个论坛,并在iPhone模拟器上加载屏幕时查看了“黑屏”视图问题的各种解决方案,但我相信我的问题是独特的,因此我还没有找到解决方案

以下是发生的事情:

  • 当使用Interface Builder使用“push”segue将ViewA链接到ViewB时,ViewB正确加载(拖动线,选择“push”);
  • 按下ViewA上的按钮时执行“推送”。

但是,当我按下ViewA上的按钮时尝试以编程方式加载ViewB时,ViewB显示为黑屏。这就是我在做的事情:

  • 我使用的是最新版本的XCode;
  • -(void) loadView已在ViewB中发表评论;
  • 我使用Interface Builder 创建了ViewA和ViewB,没有View的任何.xib文件,所以我认为在编程方式alloc + init'ing时我不能使用“initWithNibName”参数(?)按下按钮时ViewB(?)。
  • 我有一个NavigationController,ViewA是“RootView”,每个ViewA和ViewB都有一个ViewController。
  • 我用来以编程方式从ViewA按下按钮加载ViewB的代码如下:

    ViewB * viewB = [[ViewB alloc] init]; [self.navigationController pushViewController:viewB animated:YES];

有没有人有任何解决方案? (P.S - 这个社区很棒!!!)

谢谢大家!

4 个答案:

答案 0 :(得分:0)

尝试使用initWithNibName初始化ViewController:@“”bundle: 将该视图的XIB文件的名称放在第一个参数的位置,不带扩展名“.xib”,并将bundle设置为nil或[NSBundle mainBundle]。您可以进一步查看Apple文档。

答案 1 :(得分:0)

当您使用故事板时,您应该像这样初始化ViewController

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle bundleForClass:[self class]]];
ViewControllerB *viewController = [storyboard instantiateViewControllerWithIdentifier:@"identifier"];
[self.navigationController viewController animated:YES];

在界面生成器中,您应该设置您尝试初始化为“标识符”的视图控制器的标识符

(MianStoryboard_iPhone当然是你的故事板的名字!)

答案 2 :(得分:0)

可能[self navigationController]为nil,请检查它。

答案 3 :(得分:0)

可能你的XIB搞砸了。您可以尝试删除viewcontroller.m [h] [xib]并添加一个新的。在此之前,复制并过去m和h文件的内容。添加新的空viewcontroller后,只需要经过内容。不幸的是,你将不得不再次组装xib。