【问题标题】:Present view controller displays black screen当前视图控制器显示黑屏
【发布时间】:2012-08-13 02:47:00
【问题描述】:

我正在尝试使用 Objective C 中的代码来呈现一个视图,但它所提供的只是标题栏和黑屏。这是我正在使用的代码:

MoreByUserViewController *morebyuser = [[MoreByUserViewController alloc] initWithOwnerId:self.ImageOwner];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:morebyuser];
[self presentModalViewController:navController animated:YES];

我从启动视图(在此称为视图 1)调用它,我尝试加载的视图将是视图 2。

我没有将视图 2 作为 #include 或 @class 包含在视图 1 中,我需要这样做吗?

【问题讨论】:

  • 我会说您的自定义初始化可能存在问题。我们可以看看它的实现吗?
  • 我经常看到这个问题。只是猜测?你没有加载笔尖。
  • - (id)initWithOwnerId:(NSString *)m_OwnerId { userid = m_OwnerId; return self; }

标签: objective-c ios model-view-controller


【解决方案1】:

就像 Ryan 和 Dustin 所说,您可能没有在 initWithOwnerID 方法中加载笔尖。我建议先初始化视图,然后将ownerID 设置为属性。

MoreByUserViewController *morebyuser = [[MoreByUserViewController alloc] initWithNibName:@"MoreByUserViewController" bundle:nil];
[morebyuser setOwnerID:self.ImageOwner];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:morebyuser];
[morebyuser release];
[self presentModalViewController:navController animated:YES];
[navController release];

【讨论】:

  • 你的代码抛出这个:Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/ianspence/Library/Application Support/iPhone Simulator/6.0/Applications/EA041D16-336A-4EDC-A089-6297698DCCFD/Pickr Pro.app> (loaded)' with name 'MoreByUserViewController'' 我也在使用 ARC,所以我拿出了这个版本。
  • 您是否为您的 xib 文件输入了正确的名称?如果您使用的是 ARC,那么只需删除这些版本即可。
  • 我能够通过将视图从 stoaryboard 移动到 xib 文件并稍微更改代码来解决问题(删除版本并呈现 ViewController 而不是导航控制器)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-05
  • 2016-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多